• 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 可以跟踪程序的执行过程

  • 相关阅读:
    IEEEXtreme 10.0
    IEEEXtreme 10.0
    IEEEXtreme 10.0
    IEEEXtreme 10.0
    IEEEXtreme 10.0
    IEEEXtreme 10.0
    Python/Anaconda多版本共存的解决方案
    玩转树莓派
    通过远程桌面连接树莓派
    树莓派的初次启动设置
  • 原文地址:https://www.cnblogs.com/jfyl1573/p/6257004.html
Copyright © 2020-2023  润新知