저는 makefile에서 상당히 새로운 것 같습니다. yu.c를 컴파일하는 makefile을 만들고 yu.c라는 링크를 실행하여 yu라는 실행 파일을 생성하려고합니다.
아래 코드는 있습니다. make -f mymakefile을 사용하여 파일을 실행하고 실행할 때마다 gcc -c yuFile.c 만 수행됩니다. 어디서 잘못 되었나요? 이 make yu.o
에 해당 귀하의 경우 있도록 지정되지 대상으로makefile은 executeble 파일을 생성하지 않습니다.
CC=gcc
yu.o: yuFile.c
${CC} -c yuFile.c
yu: yuFile.o
${CC} yu -o yuFile.o
run-c: yu
./yu
clean:
rm -f "*.o" core
약간 혼란 작동한다. 그러면 파일 yuFile.o가 생성되어 만족스럽지 않을 것입니다. 실제로 yuFile.o -> yuFile.o는 타겟이 내장되어 있으므로 처음에는 필요하지 않습니다. 'yu.o :'타겟을 제거하고'yu :'와'run-c :'타겟을 뒤집으십시오. 첫 번째 타겟은 기본 타겟이 될'run-c :'입니다. 'yuFile.c'를 갱신하면, Makefile은'yuFile.o'를 재 빌드하고'yu'를 링크 한 다음'run-c :'를 실행합니다. –
'Makefile' -s를 디버그하는 일반적인 제안은'remake' (특히'-x' 플래그와 함께)를 사용하는 것입니다. –