使用C、C++编写可执行程序,首先要把源文件编译成中间代码文件,Linux下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)
一个项目,拥有成百上千的源程序文件,编译链接这些源文件都是由规则的,Makefile闪亮登场!Makefile确定整个工程的编译规则,只需要一个make命令,就可以实现“自动化编译”。make是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。
现在再来了解一下Make的工作原理:
- 通常在一个项目里,我们的规则是:
- 1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。
- 2)如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。
- 3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。
首先是Makefile的规则:
target … : prerequisites …
command …
1.target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,就不细讲。
2.prerequisites就是,要生成那个target所需要的文件或是目标。
3.command也就是make需要执行的命令。(任意的Shell命令)
main : main.cpp
g++ main.cpp -o main -Wall -O2 -I ./
clean :
rm -rf main
以上就是两个最简单的makefile编写
Comments NOTHING