交叉工具链的简单应用

来源:互联网 发布:js mousewheel事件 编辑:程序博客网 时间:2024/06/06 01:34

交叉工具链

交叉工具名+--help可以查看帮助

1.交叉编译器:arm-linux-gcc,

  arm-linux-gcc --help查看-print-search-dirs选项。

  arm-linux-gcc -print-search-dirs可以查看arm-linux-gcc安装位置,以及库的位置,arm-linux-gcc-g -c hello.c 只编译不链接。

2.交叉连接器:arm-linux-ld,

  如果用到连接器脚本加参数—T,—T后面直接接连接器脚本文件名。如:arm-linux-ld -Tled.lds -o lled.elf led.o通过链接器脚本文件led.lds   将 led.o链接成led.elf文件。

3.交叉ELF文件工具:arm-linux-readelf,

  无论是通过arm-linux-gcc直接编译成的文件,还是通过arm-linux-ld间接链接成的文件,都是elf文件。arm-linux-readelf -a led.elf查看elf文   件的所有属性。

   如果一个程序运行不了,一般要考虑两个问题:

       1.平台是否正确,可以用file命令查看是否是运行在x86平台上的;

       2大小端是否正确,用arm-linux-readelf查看Data,大小端是否正确,当然也可以通过Machine选项查看硬件平台。

  应用程序运行不了,除了以上两种判定方式外,还要判断该应用程序所用到的运行库,再开发板上是否存在。可用-d参数,如:arm-linux-readelf-   d hello查看Sharedlibrary该应用程序所用到的库。

4.交叉转换器:arm-linux-objcopy,通过连接器链接出的程序和通过编译器编译出来的程序都是elf式的文件,这种格式的文件不能在ARM处理器裸机

  上运行(只能运行二进制文件),命令:arm-linux-objcopy-O binary led.elf led.bin,-O后面跟要转换成的文件格式,将led.elf文件转换成     led.bin二进制文件。

5.交叉反汇编器:arm-linux-objdump,把编译好的程序变成汇编程序。如:arm-linux-objdump-D -S hello,如果输出比较多可以将输出重定位到dump

  文件中:arm-linux-objdump-D -S hello >dump,此时在dump文件里的内容就是汇编程序,可以:/函数名查看函数。可以在用arm-linux-gcc编译时

  候加上-g,可以加上调试信息,这样编译出的文件,反汇编之后后出现调试信息,方便查看。

0 0
原创粉丝点击