makefile文件和子目录

平常使用小项目的时候,一般就把源文件,头文件放在makefile的同一目录进行编译,但是对于大型的项目,我们会将构成一个函数库的几个文件从主文件中分离出来,并转存到子目录中。

有两种方法,这里我只讲我实现的方法。

各个文件的摆放如下图所示:

主目录中:

子目录(mylibD)中:

首先在子目录中编写makefiles文件,,该文件的作用是用来编译该子目录下的文件,并保存到一个函数库中,再将该库文件复制到上一级主目录当中。

本文示例将b.o c.o放入函数库mylib.a当中,子目录中的makefiles应该如下编写:

CC=gccINCLUDE=.CFLAGS=-o -Wall -ansimylib=lib.a$(mylib): $(mylib)(b.o) $(mylib)(c.o)(cp $(mylib) ../)b.o:b.hc.o:b.h c.h 然后在主目录中编写makefiles文件,该文件包含一条用于制作函数库的规则,该规则会调用上文所说的子目录中的makefiles文件。

语句是:

$(mylib): (cd mylibD;$(MAKE))

完整的makefiles文件代码

all:mytestCC=gccINCLUDE=.CFLAGS=-o -Wall -ansimylib=lib.amytest:main.o a.c $(mylib)$(CC) -o mytest main.o a.c $(mylib)$(mylib): (cd mylibD;$(MAKE))main.o:main.c a.hclean:-rm *.o $(mylib)

如此一来就可以只需要make主目录的makefiles就可以完成程序的编译!

你曾经说,你曾经说。走在爱的旅途,我们的脚步多么轻松……

makefile文件和子目录

相关文章:

你感兴趣的文章:

标签云: