GCC编译流程分析

1.预处理结点

 

GCC的选项“-E”可以使编译器在预处理结束时就停止编译

gcc -E -o hello.i hello.c

后缀名“.i”的文件是经过预处理的C原始程序。

 

2.编译阶段

GCC的选项"-S"能使编译器在进行完编译之前就停止。

 

3.汇编阶段

汇编阶段把编译阶段生成的“.s”文件生成目标文件,在此使用“-c”就可以查看到汇编代码转化为".o"的二进制目标代码了。

 

4.链接阶段

 

---------------------------------------------------------------------------------------------------------------------------------

若用户要调用含有同名动态库的静态库文件,则在"-l"后需要显示地写出包含后缀名的文件名,如:要调用libm.a库文件时就需写作“-llibm.a”

 

嵌入式系统开发环境的搭建

1.编译binutils

2.初次编译gcc

gcc编译分两次。由于此时没有编译glibc,因此还不能完整地编译gcc,但glibc的编译又离不开gcc,因此,在这里需要首先编译出一个具体最基本功能的gcc,在编译完glibc之后再完整编译gcc。

修改“gcc/config/arm/t-linux"这个配置文件,使其不对libc和gthr_posix.h文件进行编译。

添加"-Dinhibit_libc"和”-D--gthr_posix_h“

3.编译glibc

4.完整编译gcc

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值