在Windows下使用VS/VC等编译器,(其实VS只是编码器,在幕后是CL编译器在帮助其编译)编译C/C++文件我们并不能直观的看到详细过程,编译器直接自动编译。其实在Linux中VI/VIM编码器编码,用GCC/G++编译时,就能详细掌握此过程。
其实编译分为三个阶段:
1 预处理(预编译)
2 编译(C/C++代码编译成二进制指令)
3 链接
编译过程分析:
首先将源文件要编译时先进行第一阶段预编译,此过程是将源文件中的整个函数体代码以及包含的头文件(头文件中的代码也全部被包含进来),此阶段会生成预处理文件,在Linux的gcc中指令为即:gcc -o hello.c -E hello.c (-E 只是预处理)
第二阶段编译:编译成二进制代码生成以*.o的文件名(在Windows下以*.obj),Linux的gcc中指令为即:gcc -o hello.o -c hello.c(只编译不处理),此时代码中为包含库文件中的代码,如:printf......
第三阶段链接:将库代码再包含进去,生成可执行文件。Linux的gcc中指令为即:gcc -o hello hello.o
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)