0
다음 디렉토리가있는 C 프로젝트에 대한 간단한 makefile을 만들고 싶습니다.간단한 메이크 파일을 만드는 디렉토리 문제
-Project
- src
- a.c
- b.c
- main.c
- headers
- a.h
- b.h
- build
- makefile
- project.exe
그리고 여기 제가 한 메이크 파일입니다.
project: a.o b.o main.o
cc -o sesion0 a.o b.o main.o
a.o: ../src/a.c ../headers/a.h
b.o: ../src/b.c ../headers/b.h
main.o: ../src/main.c ../headers/a.h ../headers/b.h
하지만이 가 주문을 실행할 때, 그것은 입력 파일이 아니라고 또한 파일이나 디렉토리 a.o, b.o 및 main.o를 존재하지 않는 것을 저에게 그리고 말해. 끝 부분에이 오류가 표시됩니다.
make: *** [project] Error 1
왜 이런 일이 발생했는지 또는 오류가있는 곳을 아는 사람이 있습니까? 나는 makefile에서 디렉토리를 관리하는 방법을 잘 모른다.
감사합니다.
감사하지만 나에게 또 다른 오류를 보여줍니다 알고
당신은 VPATH for directory search를 사용하여 문제를 해결할 수 있습니다. 이것은 오류입니다 : 'cc -c -o ao ../src/ac ../src/ac:1:21 : 오류 : ah : 파일 o 디렉토리가 없습니다. make : ** * [ao] Error 1' 이것이 일어나는 이유를 알고 있습니까? ../headers 디렉토리의 a.h 파일을 찾지 못하는 것 같습니다. – Peter
이제 컴파일러 포함 경로를 추가해야합니다. Makefile에'CPPFLAGS = -I ../ headers'를 추가하십시오. –
@MaximEgorushkin 다음 질문은 여러 대상과 그 종속성을 처리 할 때 동일한 문제를 가지고 있습니까? https://stackoverflow.com/questions/30043480/make-recipe-to-prevent-rebuilding-of-non-dependent-targets# –