gnu-make

Makefile의 "재귀 확장 변수 할당"과 "단순 확장 변수 할당"의 차이점은 무엇입니까?
gnu-make

Makefile의 "재귀 확장 변수 할당"과 "단순 확장 변수 할당"의 차이점은 무엇입니까?

나는 그들 사이의 차이점에 대해 혼란스러워합니다. GNU 문서를 읽었지만 여전히 혼란스럽습니다. 지정한 값은 그대로 설치됩니다. 다른 변수에 대한 참조가 포함되어 있으면 해당 변수가 대체될 때마다(다른 문자열을 확장하는 과정에서) 이러한 참조가 확장됩니다. 이런 일이 발생하는 경우를 재귀 확장이라고 합니다. 변수가 정의되면 단순 확장된 변수의 값이 한 번 스캔되어 다른 변수 및 함수에 대한 참조가 확장됩니다. 확장이 완료되면 변수 값은 더 이상 확장되지 않습니다. 변수를 사용하면 값이 확장으로 ...

Admin

"arm-linux-gcc: 찾을 수 없음" 오류가 발생하는 이유는 무엇입니까?
gnu-make

"arm-linux-gcc: 찾을 수 없음" 오류가 발생하는 이유는 무엇입니까?

내 보드에 대한 u-boot를 빌드하기 위해 다음 두 명령을 따랐습니다. $ sudo make nanopi_h3_defconfig ARCH=arm CROSS_COMPILE=arm-linux- $ sudo make ARCH=arm CROSS_COMPILE=arm-linux- 첫 번째 명령에서 결과를 얻었습니다.구성은 .config에 기록됩니다. 그것은 성공을 의미합니다. 그러나 두 번째 명령에서 다음을 얻습니다. make: arm-linux-gcc: No such file or directory /b...

Admin

make 파일의 로그 출력(stdout)
gnu-make

make 파일의 로그 출력(stdout)

make 파일 내에서 로그 파일로 출력(stdout)을 보내는 방법은 무엇입니까? 나는 "make > build.log"와 같은 명령줄 솔루션에는 관심이 없습니다. 아래 목록은 내 일반 make 파일입니다. # +--------------------------------------------------------------------------+ # : Uncomment the appropriate section below (comment all others) : # ...

Admin

Make는 변경 시 패턴 규칙의 전이 종속성을 다시 빌드하지 않습니다. 이유는 무엇입니까?
gnu-make

Make는 변경 시 패턴 규칙의 전이 종속성을 다시 빌드하지 않습니다. 이유는 무엇입니까?

대략 다음과 같은 Makefile이 있습니다. .PRECIOUS: %.a %.b %.c %.a: touch $@ %.b: %.a touch $@ %.c: %.b touch $@ 를 사용하여 "test.c"를 생성하면 make test.c3개 파일( test.a, test.b, test.c)이 모두 올바르게 생성됩니다. 그러나 지금 삭제 test.a한 후 다시 생성하려고 하면 test.c아무 일도 일어나지 않습니다. 그 이유는 분명합니다. test.c에...

Admin

Makefile 및 pid 파일
gnu-make

Makefile 및 pid 파일

Makefile에는 pid 파일에 의존하는 몇 가지 편의 규칙이 있지만 프로세스가 존재하지 않는 경우에도 pid 파일이 여전히 존재하는 경우가 있습니다. make에서 이 문제를 해결하기 위한 좋은 패턴은 무엇입니까? 예를 들어 qemu에서 무언가를 실행해야 하는 경우(복잡한 멀티 아키텍처 요구 사항으로 빌드): $(QPID): qemu-system... -pidfile "$(QPID)" ... 잘 작동하고 qemu를 한 번만 시작한 다음 대부분의 시스템에서 완벽하게 종료되며 특정 유형의 가...

Admin

Makefile을 통해 대화형 명령을 올바르게 실행하세요.
gnu-make

Makefile을 통해 대화형 명령을 올바르게 실행하세요.

일련의 빌드 단계를 미리 수행해야 하는 사용자 지정 대화형 명령("repl")이 있습니다. Makefile은 제공하는 캐싱 기능으로 인해 이 특정 빌드 프로세스에 이상적입니다. 따라서 Make를 사용하여 내가 만든 repl을 생성하기 위해 Make를 사용하고 싶은 유혹이 매우 커졌습니다. 아티팩트 빌드에는 대화형 단계가 포함되지 않습니다.(이것은 모범 사례에 위배됩니다.): 대화형 repl은 개발을 제공하는 방법일 뿐입니다. 나는 이 대화형 repl이 Make를 통해 호출될 때 더 나쁘게 동작한다는 ...

Admin

컴파일하지 않고 Linux Lite에 새 버전의 gnu make 설치
gnu-make

컴파일하지 않고 Linux Lite에 새 버전의 gnu make 설치

저는 리눅스 라이트 5.8을 사용하고 있습니다. 설치된 gnu make 버전은 4.2.1인데, 최신 gnu make 버전은 4.4.1입니다. 소스에서 컴파일하지 않고 이 최신 버전을 쉽게 설치할 수 있는 방법이 있습니까? 이 게시물을 찾았습니다https://askubuntu.com/a/1386772/1326이는 4.3용 deb 패키지를 가리키는 것 같지만 저장소 링크가 더 이상 작동하지 않으며 최신 버전의 gnu make를 얻고 싶습니다. ...

Admin

Makefile 오류 "컨텍스트 확인 오류: 파일을 읽을 수 없을 때 '읽기 권한 없음'"
gnu-make

Makefile 오류 "컨텍스트 확인 오류: 파일을 읽을 수 없을 때 '읽기 권한 없음'"

다음 오류가 발생합니다. make deploy_test error checking context: 'no permission to read from '.../ssh-priv-key''. make: *** [Makefile:24: build_deploy] Error 1 이 ssh-priv-key 파일은 의도적으로 사용자가 읽을 수 없도록 만들어졌습니다. makefile이 예상대로 실행되지 않게 만드는 이 권한 문제를 어떻게 방지할 수 있습니까? 웹 검색에서 아무것도 찾을 수 없고 관련 내용도 찾을 수...

Admin

makefile에 cURL 포함
gnu-make

makefile에 cURL 포함

내 코드에서 컬을 사용하고 Makefile을 통해 실행하고 있습니다. 그러나 "make" 명령을 사용하여 실행하면 "curl/curl.h: 해당 파일 또는 디렉터리가 없습니다."와 같은 오류가 발생합니다. 아래는 내 makefile의 내용입니다. ` CXX = /home/directory/Documents/xyz/l4t-gcc/bin/aarch64-buildroot-linux-gnu-cc path = /home/directory/Documents/xyz/l4t-gcc/bin/ CFLAGS = -Wal...

Admin

FreeBSD make(bmake) 및 macOS make(GNU Make 3.81)와 작동하도록 makefile에서 쉘 배포를 어떻게 사용합니까?
gnu-make

FreeBSD make(bmake) 및 macOS make(GNU Make 3.81)와 작동하도록 makefile에서 쉘 배포를 어떻게 사용합니까?

!=FreeBSD, macOS 및 Linux에서 실행될 makefile에서 쉘 할당 연산자(예:)를 사용하고 싶습니다 . 예는 다음과 같습니다. a!= seq 3 .PHONY: all all: $a .PHONY: $a $a: @echo $@ 예상되는 결과는 다음과 같습니다. $ touch 1 2 3 $ make all 1 2 3 안타깝게도 macOS Monterey 12.6.1과 함께 제공되는 GNU Make는 셸 할당 연산자를 지원하지 않으며 이 예제의 출력은 비어 있습니다. 이는 최...

Admin

"make -j16 -l16" 호출에 실패했습니다.
gnu-make

"make -j16 -l16" 호출에 실패했습니다.

Gazebo에서 Tiago 로봇을 시뮬레이션하고 싶고 ROS 사용 가능한 패키지를 사용하고 있습니다. 이전에는 시뮬레이션하는 데 아무런 문제가 없었지만 지금은 그렇지 않습니다. 저는 KVM 가상 머신에서 ROS melodic과 ubuntu 18.04를 사용하고 있습니다. 명령을 사용하여 작업공간을 빌드 하면 catkin_make다음 오류가 발생합니다. [ 1%] Built target _tiago_pick_demo_generate_messages_check_deps_PickUpPoseGoal [ ...

Admin

리메이크에는 필요할 때만 makefile이 포함됩니다.
gnu-make

리메이크에는 필요할 때만 makefile이 포함됩니다.

foo.o두 가지 "주요" 목표인 과 가 있는 Makefile이 있다고 가정해 보겠습니다 clean. 전자에는 파일을 생성하는 방법이 있습니다 foo.o. 후자는 모든 임시 파일을 삭제합니다. 종속성을 수동으로 지정할 필요성을 없애기 위해 종속성의 형식을 지정하는 유효한 makefile을 foo.o목표로 삼고 있습니다 . 이 종속성 파일은 makefile에 포함되어 있습니다.foo.dfoo.o foo.d : dep1 dep2 depn 생성된 파일은 다음과 같습니다. ;; This buffer is f...

Admin

GNU make의 모든 규칙 직렬화: 모범 사례?
gnu-make

GNU make의 모든 규칙 직렬화: 모범 사례?

메이크파일이 있는데 확인하고 싶습니다.모든 규칙순차적으로 실행됩니다. 즉,병렬 실행처형되다. 나는 가지고 있다고 믿는다세 가지 방법이 목표를 달성하려면: 그리고.NOTPARALLEL표적, 을 호출하여 make사용합니다 make -j 1. 예를 들어 makefile에서 직접 플래그를 설정하면 다음과 같습니다.MAKEFLAGS := -j 1 세 가지 사이에 "모범 사례"가 있으며 어느 것이 더 강력합니까? 예를 들어, 이건 너무한 걸까요? MAKEFLAGS := --jobs=1 .NOTPARALLE...

Admin

Makefile에서 echo -e가 이상하게 동작하는 이유는 무엇입니까?
gnu-make

Makefile에서 echo -e가 이상하게 동작하는 이유는 무엇입니까?

저는 Makefile(해당하는 경우 Ubuntu 20.04에서)을 작성 중이며 다음 echo과 같은 간단한 Makefile을 예로 들어 보겠습니다. test.txt: @echo -e 'hello\nworld' @echo -e 'hello\nworld' > test.txt 를 실행하면 makestdout에서도 test.txt와 동일한 내용이 표시될 것으로 예상하지만 실제로는 그렇지 않습니다. 표준 출력에서 ​​이것을 얻습니다. hello world 그러나 이것은 t...

Admin

make all-recursive를 사용할 때 권한 거부 오류가 발생합니까?
gnu-make

make all-recursive를 사용할 때 권한 거부 오류가 발생합니까?

autotools와 GNU make를 사용하여 C 라이브러리를 구축 중인데 다음 줄이 있습니다. all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive Makefile에서 컴파일할 때 오류가 발생합니다. make all-recursive make: make: Permission denied make: *** [Makefile:427: all] Error 127 뭐가 문제 야? ...

Admin