编译过程学习
通常我们在生成可执行文件时,使用一条gcc命令就可以了。但是这其中包含了以下几个过程。
1.预编译(preprocess)
预编译过程主要是处理源代码中以#开头的预编译指令。如宏的处理,头文件的包含,注释删除,加入行号和文件名标识以使在编译时,编译器产生编译错误和警告时显示行号。
gcc -E hello.c -o hello.i
2.编译(compile)
将预处理完的文件进行词法分析,语法分析,语意分析以及优化后产生汇编代码。
gcc -S hello.i -o hello.s
3.汇编(assembly)
根据汇编指令和机器指令的对照表一一将汇编代码翻译成机器指令
gcc -c hello.s -o hello.o
4.链接(linking)
链接so已生成可执行文件。
ld xx.o xx.o xx.o -lxxlib -lxxlib
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步