嵌入式

嵌入式学习第5天
gcc使用方法和工作流程
GCC 工作流程
在 C 程序的编译过程中,依次要进行预处理、编译、汇编、链接四个阶段。这里通过编
译 C 文件 test.c 来展示 GCC 的工作流程。

  1. 预处理阶段
    由于在 test.c 中使用了头文件 stdio.h,所以 GCC 在编译时首先要把头文件 stdio.h
    中的内容加载到 test.c 中的首部。
    在 shell 中输入命令“gcc -E test.c -o test.i”。其中,参数 E 告诉 gcc 命令只进行
    预编译,不做其他处理;参数 o 用来指明输出的文件名为 test.i。命令运行完毕后就会产
    生一个名为 test.i 的文件。
  2. 编译阶段
    编译阶段是整个编译过程中最复杂的一个阶段。这里拿自然语言的翻译过程作个对比。
    比如在把“I love China”翻译成中文前,需要依次完成以下几个步骤:
    1)考察这个句子中每个单词的拼写是不是正确。
    2)考察整个句子的语法(比如主谓宾、定状补的结构等)是不是正确。
  3. 汇编阶段
    汇编阶段的任务是把汇编程序翻译成 CPU 可以识别的二进制文件,该文件又称为目标
    文件。
    在 shell 中输入命令“gcc -c test.s -o test.o”,其中,参数 c 告诉 gcc 命令只进
    行汇编,不做其他处理。命令运行完毕后就会产生一个名为 test.o 的目标文件。
  4. 链接阶段
  5. 链接阶段的任务就是把程序中所有的目标文件和所需的库文件都链接在一起,最终生
    成一个可以直接运行的文件,称为可执行文件。
    在 shell 中输入命令“gcc test.o -o test”,运行完毕后就会产生一个名为 test 的
    可执行文件。输入命令“./test”执行该文件,就可以得到 test 文件的运行结果“Hello
    world!”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值