나는 makefile을 작성하고 컴파일 후 어떤 이유로 프로그램을 실행하기를 원합니다.
하지만 'make'명령 만 사용하면 너무 느려서 속도를 높이기 위해 '-j'인수를 추가합니다.
모든 파일을 먼저 컴파일하고 자동으로 컴파일 된 프로그램을 실행하고 싶지만 컴파일 전에 먼저 프로그램을 실행합니다.
주문을 부분적으로 제어하려면 어떻게해야합니까?
all:test run
test:test1.o test2.o test3.o
gcc test1.o test2.o test3.o -o test
test1:test1.c
gcc -c test1.c
test2:test2.c
gcc -c test2.c
test3:test3.c
gcc -c test3.c
run:
./test
./test
완전히 컴파일되기 전에 먼저 실행될 수 있습니다 .
주문을 부분적으로 제어하려면 어떻게해야합니까?
대상 간의 종속성을 지정하여 순서를 제어합니다. 대상은 전제 조건이 구축 될 때까지 구축되지 않습니다.
run
다음에 의존해야합니다 test
.
run: test
./test
.PHONY: run
때문에 run
파일이나 디렉토리가 아닌, 그것은으로 표시해야한다 .PHONY
대상입니다.
나는 일반적으로 :
run_% : %
./$<
.PHONY: run_%
그래서 당신은 사용할 수있는 make run_this
및 make run_that
및 먼저 구축 this
하고 that
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다