首页 > 系统服务 > 详细

Linux 编译与交叉编译

时间:2019-11-06 11:24:06      阅读:157      评论:0      收藏:0      [点我收藏+]

在Linux环境中,所处平台不同,执行文件也就不同,同一执行文件不能在不同平台下使用

如在Ubnutu下 是用gcc编译一个.c文件

gcc main.c -o main.out

-o 可以指定输出文件名

但是这个mian.out文件只能在Ubnutu等其他X86构架的平台上运行,如果我们要在ARM上运行,就需要使用交叉编译器。

交叉编译器需要去根据系统构架去官网下载。

使用交叉编译器的编译一个可执行裸机文件:

流程

①、使用arm-linux-gnueabihf-gcc,将.c .s文件变为.o

arm-linux-gnueabihf-gcc -g -c main.c -o main.o

②、将所有的.o文件连接为elf格式的可执行文件。

arm-linux-gnueabihf-ld -Ttext 0X87800000 main.o -o main.elf

其中0x87800000为代码起始执行地址。

③、将elf文件转为bin文件。

arm-linux-gnueabihf-objcopy -O binary -S -g main.elf main.bin

也可以将elf文件转为汇编,反汇编。

arm-linux-gnueabihf-objdump -D main.elf > main.dis

再使用imxdownload烧写到存储目录

./imxdownload main.bin /dev/sdd

 

Linux 编译与交叉编译

原文:https://www.cnblogs.com/puchi/p/11803947.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!