处于编译阶段的源文件都是单独编译的,只要最后将编译得到的目标文件进行链接,整个程序就可以运行。
一个C/C++程序运行经历的过程,预处理、编译、汇编、链接、执行。
其中编译阶段所有代码都是单独编译的,只是在最终的链接阶段所有的目标文件
预处理
g++ -E main.cpp -o main.i
g++ -E student.cpp -o student.i
编译,声明汇编代码文件
g++ -S main.i -o main.s
g++ -S student.i -o student.s
汇编,将汇编代码文件转化为可执行的机器执行
g++ -c main.s -o main.o
g++ -c student.s -o student.o
链接,将所有的目标文件组织成一个可以执行的二进制文件
g++ main.o student.o -o student
省略如上显式的过程,可以用一个命令执行生成可执行文件:
g++ main.cpp student.cpp -o student
最后执行该程序
./student
那么这个过程是如何实现的?