makefile:多个目录下makefile 的写法
有文件main.ca.cb.ca.hb.h,我想把两个头文件放一个文件夹里,把几个.c文件放一个文件夹,然后在编写makefile文件,如何编写...
有文件 main.c a.c b.c a.h b.h ,我想把两个头文件放一个文件夹里,把几个.c文件放一个文件夹,然后在编写makefile文件,如何编写
展开
2个回答
展开全部
1、假定.h文件在Header目录里,.c文件在Source目录里,这两个目录文件在Myapp中,Makefile也在Myapp中。
2、Makefile如下。
----------------------------------------------------------------------------------
all: myapp
myapp: main.o b.o c.o
gcc -o myapp main.o b.o c.o
main.o: ./Source/main.c ./Header/a.h
gcc -c ./Source/main.c -I./Header
b.o: ./Source/b.c ./Header/a.h ./Header/b.h
gcc -c ./Source/b.c -I./Header
c.o: ./Source/c.c ./Header/b.h ./Header/c.h
gcc -c ./Source/c.c -I./Header
clean:
rm -f *.o
------------------------------------------------------------
3、话说回来,这样做太麻烦。
2、Makefile如下。
----------------------------------------------------------------------------------
all: myapp
myapp: main.o b.o c.o
gcc -o myapp main.o b.o c.o
main.o: ./Source/main.c ./Header/a.h
gcc -c ./Source/main.c -I./Header
b.o: ./Source/b.c ./Header/a.h ./Header/b.h
gcc -c ./Source/b.c -I./Header
c.o: ./Source/c.c ./Header/b.h ./Header/c.h
gcc -c ./Source/c.c -I./Header
clean:
rm -f *.o
------------------------------------------------------------
3、话说回来,这样做太麻烦。
追问
是的这样确实有点麻烦,我的意思是可以设计一个变量,可惜不会弄
追答
其实目录文件没必要按头文件和源文件来分,因为这样让Makefile很难写。
最好是将有依赖关系的头文件和源文件放在一个目录文件里,也就是按不同的project来分目录,就不会出现这种问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询