makefile的一点心得
makefile文件是什么呢?其实呀makefile文件是make命令执行时定义的编译和连接规则的文件。例如:编译parsefile.cpp文件。在这个.cpp文件中需要用到rapidjson的库。编写的makefile文件如下。
第一行的parsefile是make编译之后可执行文件的名字,冒号后面跟的是关联的文件,接下来的第二行为make时需要执行的命令。前面的留白要用table键,不能使用空格。
每个makefile文件最后都应该有一个clean。这个clean是一个“伪目标”。为了能够完整的编译文件。clean的冒号后面没有指定相关的文件,make执行到这的时候,不会主动去执行后面的命令。需要我们自己执行 make clean。然后再执行make,这样我们就可以重新完整的编译一次。
执行make之后的结果:
makefile中重要的三个变量:$@ $^ $< $?
$@:表示所有的目标文件
$^:表示所有的依赖文件
$<:表示第一个依赖的文件
$? :表示比目标还要新的依赖文件列表
makefile中常用的选项:-I(大写的i) -L(大写的l) -l(小写的l)
-I:指定头文件的路径。如上图中的-Irapidjson表示,在编译parsefile.cpp的时候rapidjson下的关于json解析相关的头文件搜索时,首先在rapidjson路径下搜索。
-L:指定lib库搜索的路径
-l:指定在lib库里面搜索-l后面指定字符相关的库