程序员的自我修养——编译和链接
2016-03-19 23:05
197 查看
预编译:主要处理那些源代码文件中的以 “#” 开始的预编译指令。如 #include、#pragma、#define。
编译:整个程序构建的核心部分,也是最复杂的部分。把预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后生成相应的汇编文件。
汇编:将汇编代码转换为可执行的指令。
重定位就是地址修正的过程,就是给程序中每个绝对地址引用的位置打补丁,使他们指向正确的地址。
$ gcc -E client.cpp -o client.i 或 $ cpp client.cpp > client.i
编译:整个程序构建的核心部分,也是最复杂的部分。把预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后生成相应的汇编文件。
$ gcc -S client.i -o client.S c++中对应为cc1plus
汇编:将汇编代码转换为可执行的指令。
$ gcc -c client.s -o client.o链接:主要内容就是将各个模块之间相互引用的部分处理好,使得各个模块之间能够正确的衔接。主要过程:地址和空间分配、符号决议和重定位。
重定位就是地址修正的过程,就是给程序中每个绝对地址引用的位置打补丁,使他们指向正确的地址。
相关文章推荐
- 如何重装TCP/IP协议
- Windows 8 官方高清壁纸欣赏与下载
- 谁是桌面王者?Win PK Linux三大镇山之宝
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows Clang开发环境备忘
- 从Windows系统下访问Linux分区相关软件
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows下搭建本地SVN服务器
- 使用Windows原生命令一键清空剪贴板
- 利用开源软件打造自己的全功能远程工具
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- 微软镜像下载
- windows server域用户提升到本地更高权限组中的方法
- 使用命令修改注册表键值及权限
- 通过手机、电脑远程开关机,Windows和linux机手机,电脑相互控制
- Windows XP最新应用技巧大荟萃