IDE是什么?
这个就是IDE(集成开发环境):主要目的就是为开发人员省时间。
首先创建一个项目:
这些就不多说了。
创建好项目后要对程序进行编译和链接。通常IDE提供了多个菜单项。
一般一个项目要想成功运行分为4步:
预处理-编译-汇编-链接
1.预处理(preprocess):
编译前的一些准备工作,预编译把一些#define
的宏定义完成文本替换,然后将#include
的文件里的内容复制到.cpp
文件里,如果.h
文件里还有.h
文件,就递归展开。
处理完之后就从.cpp文件变成了.i文件
2.编译(compile):
把我们写的代码转为汇编代码,他的工作是检车词法和语法,如果我们的程序没有词法和语法问题,他就不会报错,不管逻辑对不对,他都不报错(其实现在没啥软件会对我们编写的程序的逻辑是否正确进行报错)。
编译不是把源程序文件直接转换到计算机可以直接运行的二进制程序。而是转化为特定的汇编代码的过程。
处理完之后.i文件就成了.s文件
3.汇编(assemble)
将特定的汇编代码转换成机器码。
这一步生成的文件叫目标文件。
处理完之后.s文件就成了.o文件
4.链接(Link)
.o文件并不是最终可以执行的二进制文件。他仍然是一种中间文件或称临时文件。目标文件仍需要经过链接才能变成可执行的文件。
既然目标文件和可执行文件的格式是一样的(都是二进制格式),为什么还要再链接一次呢?
因为编译只是将我们自己写的代码变成了二进制形式,它还需要和系统组件(比如标准库、动态链接库等)结合起来,这些组件都是程序运行所必须的。
链接(Link)其实就是一个“打包”的过程,它将所有二进制形式的目标文件(.o)和系统组件组合成一个可执行文件。完成链接的过程也需要一个特殊的软件,叫做链接器(Linker)。
此外需要注意的是:C++程序编译的时候其实只识别.cpp
文件,每个cpp文件都会分别编译一次,生成一个.o
文件。这个时候,链接器除了将目标文件和系统组件组合起来,还需要将编译器生成的多个.o
或者.obj
文件组合起来,生成最终的可执行文件(Executable file)。