最近刚接触到linux下的c++编程,需要在一个main函数了里面引用两个自定义的类,这就需要用到makefile文件来定义各个文件之间的依赖关系(其实makefile的作用主要就是这个)。这两个类分别声明在各自的.h头文件以及定义在.cpp文件中,所有的文件为main.cpp、Product.h、Product.cpp、Factory.h、Factory.cpp五个文件。
以下为我写的makefile内容
********************************************
obj = Product.o Factory.o main.cpp
main: $(obj)
Product.o:Product.h Product.cpp
# g++ -c Product.h Product.cpp
Factory.o:Factory.h Factory.cpp
# g++ -c Factory.h Factory.cpp
.PHONY:clean
clean:
rm *.o
*********************************************
将这个makefile文件和所有的源文件放在同一个目录下面,然后cd到这个目录下面,直接输入命令make回车,就生成了main这个可执行文件。(值得注意的是makefile的文件名必须为全小写或者头字母大写的Makefile,因为make命令默认就是查找这两个文件,也可指定特定的文件名,但是在make命令中必须加-f参数来指出)
还有一些有用的小知识:
Makefile有三个非常有用的变量。分别是$@,$^,$<代表的意义分别是:
$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。
重点的在下面!重点的在下面!重点的在下面!我找到了一个大神写的makefile教程,很全很详细很通俗易懂,很想分享给大家。为了尊重原作者,给出链接:
https://blog.youkuaiyun.com/liang13664759/article/details/1771246/