目录制作简单makefile的问题

时间:2011-02-08 14:48:59

标签: makefile makefile-project

我想为具有以下目录的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中的目录。

感谢。

1 个答案:

答案 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