交叉编译工具链的安装与使用

 

说明:只供学习交流

 

一,交叉编译工具链的概念

在嵌入式开发过程中,有宿主机目标机之分。

宿主机:宿主机是执行编译、链接嵌入式软件的计算机。

目标机:目标机是运行嵌入式软件的硬件平台。

而在宿主机上进行预处理、编译、汇编、链接等工作的一系列工具称为交叉编译工具链。

 

 

二,安装交叉编译工具链

1):将压缩包解压到根目录,使用命令

tar –zxf arm-linux-gcc-4.4.3.tar.gz –C  /

 

2):配置环境变量

方法一:在/etc/profile文件中添加如下代码:vim /etc/profile

然后使环境变量生效,使用命令:source /etc/profile

 

方法二:我们也可以通过在/root/.bashrc中添加如下语句实现

export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin

注意:/root/.bashrcroot用户打开终端时会运行的一个bash脚本,所有在其中添加的语句,在每打开一个终端时都会被执行。

 

 

接下来输入arm-linux-gcc–v出现交叉编译工具链的一些信息,说明安装成功。

 

我在安装好交叉编译工具链以后,写了一个小程序来测试一下,结果提示:

/usr/lib/libstdc++.so.6:version `GLIBCXX_3.4.9' not found

 

出现这个原因是我的Linuxglibc版本比较低的原因,需要更新,只需要从网上下载libstdc++.so.6.0.10文件放到/urs/lib目录下。然后我们重新做libstdc++.so.6.软链接:

先删除以前libstdc++.so.6,终端输入:rm -rf /urs/lib/libstdc++.so.6
重做libstdc++.so.6软链接,终端输入:ln -s/urs/lib/libstdc++.so.6.0.10  /urs/lib/libstdc++.so.6

这样就OK了。

 

具体的原因是:这里libstdc++.so.6是个软链接,它链接到libstdc++.so.6.0.8。而libstdc++.so.6.0.8没有`GLIBCXX_3.4.9

所有我们要下载libstdc++.so.6.0.10,因为它有GLIBCXX_3.4.9,呵呵。

 

objdump反汇编命令的使用:

当我们需要查看源代码的汇编时可以使用命令arm-linux-objdump –D –S hello > log

 

readelf命令的使用:

当我们需要查看可执行文件的体系结构时,比如这个程序是大端的还是小端的,是X86平台的还是ARM平台的等等,可以通过命令:arm-linux-readelf –a hello >log查看。

 

 

三,总结

只有安装好交叉编译工具链之后才能谈嵌入式的开发,这里还需要注意的是,对于不同版本的u-boot或者内核,可能需要选择不同的交叉编译工具链,特别是对于一些老的u-boot,较新版本的交叉编译工具链可能无法通过,这是因为较老的u-bootmakefile中可能使用了一些已经不再使用的编译选项。

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值