打印

arm-linux-gcc

[复制链接]
191|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
车水马龙|  楼主 | 2018-10-6 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
--------------------------------------------------------------------------------------------------------------

linux下的开发

下载地址:

http://www.codesourcery.com/gnu_toolchains/arm/download.html

http://ftp.denx.de/pub/eldk/4.2/arm-linux-x86/distribution/

安装arm-linux-gcc一、解压arm-linux-gcc到/opt中

二、在~/.bashrc中设置环境变量并更新

export  PATH=$PATH:/opt/。。。/bin

$source .bashrc

三、查看版本

$arm-linux-gcc -v



对于64位机器需要安装32位的依赖库:

glib*.i686

zlib*.i686



GNU ARM开发工具的使用



1.编译器arm-linux-gcc

Arm-linux-gcc    -v                             :查看版本信息

Arm-linux-gcc    -E    xxx.c    -oxxx.i    :只做预处理,生成.i文件(E大写)

Arm-linux-gcc   -c    xxx.c                 :只做编译,生成.o文件

Arm-linux-gcc    -S    xxx.c                   :只做汇编,生成.s文件(S大写)

Arm-linux-gcc      xxx.c      :预处理,编译,汇编,链接,生成a.out文件

Arm-linux-gcc      xxx.c    -oxxx     :预,编,汇,链,生成xxx文件

Arm-linux-gcc-Wall    xxx.c              :生成尽可能多的警告信息(W大写)



makefile:

%.o : %.S

arm-linux-gcc   -o   $@   $<   -c

%.o : %.c

arm-linux-gcc   -o   $@   $<   -c

将所有的.S文件和.c文件编译成.o文件



2.连接器arm-linux-ld

用于连接目标文件和系统库中的函数代码(目标代码)

arm-linux-ld  libfile1   libfile2   -lc    -o  file.elf     file.o   

将两个库文件和目标文件连接生成可执行elf文件。



makefile:XXX.bin:XXX.o...

arm-linux-ld  -Ttext   0xXXX  –o  XXX.elf   $^

-Ttext   address     #表示程序的运行地址



3.文件格式转换arm-linux-objcopy

将生成的.elf文件或者.o文件转换成二进制文件。

arm-linux-objcopy   -O   binary    file.elf     file.bin      (O大写)



makefile:

arm-linux-objcopy   –O   binary   XXX.elf   XXX.bin



4.反汇编arm-linux-objdump

将elf格式的可执行文件反汇编成汇编代码文件

arm-linux-objdump   -D     file.elf     >file.asm         (S大写)



makefile:

arm-linux-objdump   -D   XXX.elf   >   XXX_elf.dis    #调试程序时可能会用到



5.汇编器arm-linux-as

将汇编源文件汇编成目标文件

arm-linux-as     hello.S    -o   hello.o



6.elf格式文件查看arm-linux-readelf

查看elf格式的文件的信息

arm-linux-readelf  -a   file.elf

arm-linux-readelf  -a  file.elf  |  grep  Share   (S大写)



7.静态库管理arm-linux-ar

可以将产生的.o目标文件添加到库中,也可查看库中的目标文件。

Arm-linux-ar  rc   file.a    file.o       将file.o生成file.a库文件



8.符号表生成指令arm-linux-nm

arm-linux-nm     file.elf    >sym

生成elf文件中的符号,重定向到sym中



9.去掉elf文件中不需要的信息和代码arm-linux-strip

去掉文件中不使用的信息,减小目标文件体积

arm-linux-strip     file.elf



10.列出目标文件大小arm-linux-size

arm-linux-size



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

其他工具

hexdump  -C  file.bin     查看二进制文件



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

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

474

主题

476

帖子

0

粉丝