码迷,mamicode.com
首页 > 其他好文 > 详细

程序员的自我修养-链接、装载与库-2

时间:2017-01-15 11:40:07      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:blog   展开   汇编   开始   优化   class   处理   uil   命令   

第二部分 静态链接

被隐藏了的过程:预处理、编译、汇编、链接(Build过程 在IDE中)

技术分享

预编译:

  源代码hello.cpp和相关头文件(stdio.h)被预编译器cppp预编译成一个.i文件。

  预编译命令:

gcc -E hello.c -o hello.i
或者
cpp hello.c > hello.i

  过程:预编译主要处理那些源代码中的以‘#‘开始的预编译指令。比如“#include” "#define"等。 

  包括: 展开宏定义;

      处理所有条件预编译指令:"#if" "#ifdef" "#elif" "#else" "#endif";  

      将被包含的文件插入到预编译指令的位置 比如头文件(递归);  

      删除所有的注释;  

        添加行号和文件名标志,方便调式;  

      保留所有的#pragma编译器指令

编译:

   预编译过程就是进行一系列的词法分析、语法分析、语义分析以及优化后产生相应的汇编代码文件,是核心部分也是最复杂的部分。

gcc -S hello.i -o hello.s

 

程序员的自我修养-链接、装载与库-2

标签:blog   展开   汇编   开始   优化   class   处理   uil   命令   

原文地址:http://www.cnblogs.com/luntai/p/6286705.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!