前面写了“写Makefile(二)”,现在对前面的Makefile作一个改进。
现在源文件有三个,分别是:main.cpp,tdes.c和tdes.h,Makefile内容如下:
看到了吗,现在没有对每个.o文件单独写一个依赖规则,今后几十增加更多的.c和.cpp文件,只需要在OBJS文件后面添加一个.o文件的名字就可以了。
上面的办法已经比较简便了,但是还有人嫌编辑那么多.o名字麻烦,那么还有一个办法,Makefile更改如下:
上面通过$(patsubst %.c,%.o,$(wildcard *.c)) 和$(patsubst %.cpp,%.o,$(wildcard *.cpp),将目录下.c和.cpp文件名字全部转化成.o文件列表,并赋予变量OBJS值。
但是这样有一个缺点,这样会把目录下的所有源文件都编译进来,有些文件可能你不希望编译的,可能会引起不必要的错误。
可以根据自己的需要选择。