本文共 1024 字,大约阅读时间需要 3 分钟。
预处理器、编译器、汇编、链接
C/C++的预处理器是最低端的一种—–词法预处理器,主要是进行文本替换、宏展开、删除注释、把头文件内容包含进来这类简单工作。
gcc -E
选项可得到预处理后的结果,预处理结果会显示到屏幕上,如果需要保存,则得需要重定向,扩展名为 .i;hello world
都有好几百行代码;将文本文件 .i
翻译成文本文件.s
,得到汇编语言程序(把高级语言翻译为机器语言),该种语言程序中的每条语句都以一种标准的文本格式确切的描述了一条低级机器语言指令。
gcc -S
选项可以得到编译后的汇编代码,扩展名为 .s
;将 .s
翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标文件.o
中(把汇编语言翻译成机器语言的过程)。
gcc -c
选项可以得到汇编后的结果,扩展名为.o
;.o
是一个二进制文件,它的字节编码是机器语言指令而不是字符。如果在文本编辑器中打开.o
文件,看到的将是一堆乱码;gcc会到系统默认的搜索路径/usr/lib
下进行查找,也就是链接到libc.so.6
库函数中去。 函数库一般分为静态库和动态库两种。
.a
;.so
,如前面所述的libc.so.6就是动态库。gcc在编译时默认使用动态库。转载地址:http://bmuoi.baihongyu.com/