源码 main.cpp:
#include <iostream>
int main(){
std::cout<<"Hello world"<<std::endl;
std::cin.get();
}
一、编辑
首先我们需要有源码文件,使用到编辑器:txt,notepid++,vim等等,在这些编辑器上编辑出我们的源码文件 —— .cpp
二、编译(build)
1、预处理(i,ii)
将我们cpp文件中的所有以 # 开头的代码进行预加载和处理,即:将头文件的内容拷贝粘贴到对应的#include所在的位置,将 #define 的定义的宏进行替换;条件语句(#ifdef)
会生成临时的ii或者i文件,使用Visual Studio是默认是不会生成这种原处理中间文件的。一般我们也不需要查看;
如果真的想查看预处理生成的ii文件做了什么 ,可以右键项目-》c/c+±》预处理器-》预处理到文件-》勾选是。勾选后会产生一个ii文件。但是这样会中断后面的编译过程,不会再生成obj文件。所以平时运行时这个选项不要打开
2、编译、汇编(.obj)
编译:词法,语法分析等转为汇编语言。汇编语言就是一些CPU指令,MOV 寄存器值之类的
汇编:将汇编语言转为机器语言。
默认情况下我们最终生成的是.obj的机器码文件,里面全是二进制数据,如果想要转成我们自己有一定可读性的文件,可以选择右键项目-》c/c++ -》输出文件-》汇编程序输出-》带机器码的源程序。但是最终编译运行的时候还是要改回来。
最终每一个.cpp文件会被编译器生成一个对象文件(.obj文件)。头文件(.h)不会进行编译。
三、链接(.exe)
我们运行程序时需要多个.cpp,就会有多个.obj文件生成,要想最终运行程序需要把多个obj文件链接起来。
此时需要 链接器 帮助我们把多个.obj文件和第三方动态库进行链接,进而生成一个可执行文件.exe
运行
exe文件为可执行文件,双击即可运行。