您的位置:首页 > 职场人生

程序员的自我修养——编译和链接

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
  链接:主要内容就是将各个模块之间相互引用的部分处理好,使得各个模块之间能够正确的衔接。主要过程:地址和空间分配、符号决议和重定位。

       重定位就是地址修正的过程,就是给程序中每个绝对地址引用的位置打补丁,使他们指向正确的地址。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  windows