概述
交叉工具链
1. 交叉编译:嵌入式系统开发采用交叉开发模式,是A机器上编译生成,运行在B机器上。两个机子有不同的机器指令。
2. 工具链:可能指编译、汇编、链接等一整套工具。
3. 作用:编译的程序才能在目标机上运行,用gcc编译的程序无法在目标机上运行。
4. 安装
a) 解压工具链到跟目录下tar xvzf arm-linux-gcc-4.3.2.tar.gz –C /
i. -C表示解压到某个目录下
b) 修改/etc/profile ,添加pathmunge /opt/FriendlyARM/toolschain/4.5.1/bin
i. 根据具体的解压路径修改上面的地址
ii. 否则每次使用时都得加上路径
c) 执行source /etc/profile 使生效
5. 交叉工具链中几个主要的命令:
a) 工具都存放在/opt/FriendlyARM/toolschain/4.5.1/bin目录中
b) 编译器:arm-linux-gcc 例:arm-linux-gcc hello.c –o hello
c) 反汇编工具:需要有编译好的代码
i. 作用:用来观察汇编语言的代码
ii. arm-linux-objdump 例arm-linux-objdump –D –S hello
iii. 以上情况会直接输出汇编代码,若在末尾加上>hello.log表示输出到这样一个文件里去
d) ELF文件查看工具:arm-linux-readelf
i. Elf文件:arm-linux-gcc 编译出来的文件的格式
ii. arm-linux-readelf –a hello 查看ELF的头信息,关注Data大小端和machine目标机是否符合要求
iii. arm-linux-readelf –d hello 查看hello使用的动态库shared library
1) 作用:有时候会发现明明有程序,但是运行时还是会报找不到程序的错误,那么就可能是没有动态链接库。解决:把相应的动态链接库拷贝到lib下
最后
以上就是魔幻饼干为你收集整理的LINUX学习笔记22——交叉工具链的全部内容,希望文章能够帮你解决LINUX学习笔记22——交叉工具链所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复