我想为具有以下目录的C项目创建一个简单的makefile。
-Project
- src
- a.c
- b.c
- main.c
- headers
- a.h
- b.h
- build
- makefile
- project.exe
这就是我做过的makefile。
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
但是当我执行 make 命令时,它告诉我,文件或目录ao,bo和main.o不存在,而且还有'不是输入文件。最后显示了这个错误:
make: *** [project] Error 1
有谁知道为什么会发生这种情况或我有错误的地方?我不太清楚如何管理makefile中的目录。
感谢。
答案 0 :(得分:2)
Make有内置的规则,可以从x.c创建x.o,但不能从../src/x.c创建。换句话说,输入和输出的路径必须相同,只有文件扩展名不同。
您可以使用VPATH for directory search:
进行修复VPATH = ../src:../headers
a.o: a.c a.h
b.o: b.c b.h
main.o: main.c a.h b.h