zoukankan      html  css  js  c++  java
  • gcc编译器用法(自学总结)

    GCC仅仅意味着GNU C Compiler。

    gcc工作四个步骤:预处理,编译,汇编,连接。

    1.预处理:

       编译器将C源代码中的包含的头文件如stdio.h编译进来,用户可以使用gcc的选项”-E”进行查看。
       用法:#gcc -E hello.c -o hello.i

    2.编译:

       在这个阶段中,Gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,Gcc把代码翻译成汇编语言。用户可以使用”-S”选项来进行      查看,该选项只进行编译而不进行汇编,生成汇编代码。
    选项 -S
      用法: gcc –S hello.i –o hello.s
      作用:将预处理输出文件hello.i汇编成hello.s文件。

    3.汇编:

      这个阶段是把编译阶段生成的”.s”文件转成二进制目标代码.
    选项 -c
    用法: gcc –c hello.s –o hello.o
    作用:将汇编输出文件test.s编译输出test.o文件。

    4.链接:

      这个阶段实际就是链接地址,比如去动态库找被调用的函数。

    用法:gcc hello.o –o hello.exe
    作用:将编译输出文件hello.o链接成最终可执行文件

    【补充】

        arm-linux-gcc   -E      停留在预处理阶段

        arm-linux-gcc   -S      停留在编译阶段,这时候的输出文件是汇编语言。

        arm-linux-gcc    -c      停留在汇编阶段,这时候生成了二进制文件

        arm-linux-ld   -Ttest=0x xxxxxxxx   指定代码段的入口地址

        arm-linux-objcopy - I elf32-littlearm -O binary  xxx.bin   去头生成机器码

        arm-linux-objdum -h   反汇编

        arm-linux-as    汇编器

    利用strace ./a.out 可以跟踪程序的执行过程

  • 相关阅读:
    fafu 1231 dp(线段树优化dp)
    OUTLOOK+VBA 备份邮件到GMAIL
    心灵的程序:佛学与计算机
    建议增加编辑器插件“自动排版”
    高效演讲:简单四步走
    找呀找呀找地铁
    为什么你总是烦?
    变形金刚之雷曼疯狂兔子:抽水马桶变身
    客观:别人的主观
    用VBSCRIPT朗读文本
  • 原文地址:https://www.cnblogs.com/jfyl1573/p/6257004.html
Copyright © 2011-2022 走看看