• GCC 编译步骤 及工作


    转自:

    http://www.cnblogs.com/napoleon_liu/archive/2011/05/06/2038698.html

    gcc 编译 C源码 四个步骤:

    1)预处理 Pre-processing  编译器对各种预处理命令进行处理:包含头文件的包含、定义的扩展、条件编译选项等。

    指令主要有: #define, #include,  #ifdef ... #endif

    可以用gcc 的选项“-E” 进行查看。 gcc -E hello.c

    2) 编译阶段 Compiling  编译器首先检查代码的规范性、是否有语法错误等,之后把代码翻译成汇编语言。

    该阶段只进行编译不进行汇编,生成汇编代码。         编译 -> 汇编代码

    可以用“-S” 选项来进行查看。

    3) 汇编阶段 Assembling 汇编阶段把编译阶段生成的“.s” 文件转成二进制目标代码。

    选项 -c

    4) 链接阶段 Link  将目标文件链接成可执行文件

    这里涉及到一个重要概念:函数库

    ldd命令查看动态库加载情况:

    # ldd hello

    libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

    l dd - print shared library dependencies

    $ rpm -qf /usr/bin/ldd
    glibc-common-2.3.4-2.25 看来一般只要有glibc就有ldd命令,就可用。

  • 相关阅读:
    css3的::selection属性
    css3的apprearance属性(转)
    CSS3的background-size
    DNS与获取
    AMD规范
    网站的个性图标
    webapp之路--之ios上图标
    webapp之路--之必备知识
    用Js的eval解析JSON中的注意点
    CSS 盒模型
  • 原文地址:https://www.cnblogs.com/ai616818/p/2396420.html
Copyright © 2020-2023  润新知