当前位置: 代码迷 >> 综合 >> cross-arm-eabi-gcc用法
  详细解决方案

cross-arm-eabi-gcc用法

热度:41   发布时间:2023-12-08 20:30:56.0

1:怎么反汇编用arm-gcc  file.c –o Target 生成的文件,arm-linux-objdump –D –S hello,使用arm-linux-objdump –D –S hello > log可以把信息输出到log文件。使用技巧:

可以看到c语言对于的汇编:

1.2:怎么反汇编elf文件:arm-linux-objdump –D elf_file > dis_file

1.3:怎么反汇编二进制文件:arm-linux-objdump –D –b binary –m arm bin_file > disfile

 

2:elf阅读器查看程序信息:

arm-linux-readelf –a hello

显示的有用的信息:

Machine: ARM表示,该程序是用于arm机器的,

上面的Little endian 表示该程序是用于小端格式,一般的工具链都是小端格式,像TI的芯片采用的是大端格式,这个时候, 应该换一个大端交叉工具链。

关于-d选项

-d选项可以查看hello用了哪些共享库, 有些程序运行不起来,就是应为,lib目录没有共享库,但是编译又是没错误的。解决的办法就是copy该库到lib目录,或者,使用静态编译如:

静态编译后, -d选项看不到程序使用的共享库(也叫动态库)

 

3:关于编译时的选项-nostdlib ,不连接系统标准启动文件,和标准库文件,只把指定文件给连接器, 一般用来编译bootloader程序

4:在gcc命令前 加-v可以看到编译的详细过程,

5:-shared选项用于生成一个共享OBJ文件(也叫共享库文件)。只有部分系统支持该选项:

Gcc –c –o sub.o sub.c

Gcc –shared –o sub.,a sub.o

       6:-T选项用于指定代码段,数据段,bss段的起始地址,也可指定一个连接脚本