程序的 编译 和 链接
要先总结 make
和 makefile
,就需要先了解下面这个过程:
- 预编译:也叫预处理,进行一些文本替换工作,比如将
#define
定义的内容,在代码中进行替换; - 编译:将预处理得到的代码,进行词法分析、语法分析、中间代码……;如果是在Windows下,中间代码就是
.obj
文件;在Linux系统下,中间代码就是.o
文件; - 汇编:将编译得到的汇编代码,通过汇编程序得到 0 和 1 机器语言;
- 链接:链接各种静态链接库和动态链接库得到可执行文件。
make 和 makefile 能干啥?
一个工程,那么多源文件,一堆的 cpp
和 h
文件,怎么编译啊?编译一个大型工程,如果Rebuild可能就需要好几个小时,甚至十几个小时,那我们就可能要问了。
- 如何像VS那样,一键就能编译整个项目?