如何写好一个makefile,让其简短又可读性强?这里博主推荐一种写法(顺便方便自己以后开发使用做一下记录)。GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个.o文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。
只要make看到一个.o文件,它就会自动的把.c文件加在依赖关系中,如果make找到一个whatever.o,那么whatever.c,就会是whatever.o的依赖文件。并且 cc -c whatever.c 也会被推导出来,于是,我们的makefile再也不用写得这么复杂。
1 | CC = g++ |
$@
扩展成当前规则的目的文件名,$<
扩展成依靠列表中的第 一个依靠文件,而 $^
扩展成整个依靠的列表(除掉了里面所有重复的文件名)。
这种方法,也就是make的“隐晦规则”。