Red Hat6 GCC编译流程学习笔记

一、流程:
hello.c 预处理 hello.i 编译 hello.s 汇编 hello.o 链接 hello
二、具体过程
1、完成预编译
gcc -E hello.c -o hello.i
生成hello.i文件
2、gcc -S hello.i -o hello.s
编译生成hello.s汇编文件
3、gcc -c hello.s -o hello.o
经汇编生成hello.o二进制文件
4、gcc hello.o -o hello
可执行应用程序hello
三、GCC编译选项
1、-o可改变可执行程序的名字
gcc app.c -o app:将app.c生成的a.out改成app,这样子便于区分
2、-o -O -O2优化程度递增,但是编译速度很变慢
四、交叉工具链
1、学习使用
arm-linux-gcc 交叉编译器
arm-linux-ld 交叉链接器
arm-linux-readelf查看
arm-linux-objdump反汇编器
arm-linux-objcopy

2、arm-linux-gcc -g -c led.S只编译不链接

3、arm-linux-ld -Tled.lds -o led.elf led.o main.o使用链接器脚本
将多个.o文件链接成一个led.elf文件

4、arm-linux-readelf -a led.elf
查看led.elf所有内容
检查能否运行
arm-linux-gcc hello.c -o hello
flie hello
检查运行环境
arm-linux-readelf -d hello查看hello使用的库
5、
arm-linux-objdump -D -S hello >dump反汇编输出到dump
6、arm-linux-objcopy -O binary led.elf eld.bin
转化成二进制文件

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值