ubuntu安装交叉编译工具链(附避坑指南)

1.打开Ubuntu,在终端进入/usr/local/目录下

cd /usr/local/

2.在local/目录下创建一个名为arm的文件夹

mkdir arm

3.在自己的共享文件夹下找到arm-2009q3.tar.bz2,并复制到之前创建的arm目录下

cp /mnt/hgfs/Myshare/arm-2009q3.tar.bz2 /usr/local/arm/

4.进入到arm目录下,解压该其中文件

cd /usr/local/arm
tar -jxvf arm-2009q3.tar.bz2	

5.然后执行:

cd arm-2009q3/bin
./arm-none-linux-gnueabi-gcc -v

注意:这里如果输入./arm-none-linux-gnueabi-gcc -v终端显示 ‘没有这样的文件存在’ ,这是因为在64位的系统下安装32位交叉编译工具链,会无法使用,所以我们需要安装32位库的支持

sudo apt-get install libc6:i386

安装好了之后重新输入./arm-none-linux-gnueabi-gcc -v
在这里插入图片描述
操作成功!

6.为了能让它其他目录中也可以这么操作,我们把它导出到环境变量中
打开配置文件

sudo vim /etc/profile

7.在vi界面末尾处加入

export PATH=$PATH:/usr/local/arm/arm-2009q3/bin

8.回到主目录,查看交叉编译工具是否可用

cd ~
source /etc/profile

这里如果没有出现相关信息,切换root用户再次输入命令

使用 echo $PATH查看交叉编译链的安装路径是否加入了环境变量。
使用arm-linux-gnueabihf-gcc -v测试交叉编译链是否好使

9.建立一个符号链接,进入到/usr/local/arm/arm-2009q3/bin#目录下,vi新建一个[mk-arm-linux-.sh]脚本(文章最后可复制粘贴该脚本),然后输入命令:

chmod 777 mk-arm-linux-.sh
./mk-arm-linux-.sh

这里由于运行时报错,原因详见解决linux的-bash: ./xx.sh: Permission denied

ls查看,可以发现符号链接出现,到此,交叉编译链配置成功!

在这里插入图片描述


附件:

ln arm-none-linux-gnueabi-addr2line -s arm-linux-addr2line
ln arm-none-linux-gnueabi-ar -s arm-linux-ar
ln arm-none-linux-gnueabi-as -s arm-linux-as
ln arm-none-linux-gnueabi-c++ -s arm-linux-c++
ln arm-none-linux-gnueabi-c++filt -s arm-linux-c++filt
ln arm-none-linux-gnueabi-cpp -s arm-linux-cpp
ln arm-none-linux-gnueabi-g++ -s arm-linux-g++
ln arm-none-linux-gnueabi-gcc -s arm-linux-gcc
ln arm-none-linux-gnueabi-gcc-4.4.1 -s arm-linux-gcc-4.4.1
ln arm-none-linux-gnueabi-gcov -s arm-linux-gcov
ln arm-none-linux-gnueabi-gdb -s arm-linux-gdb
ln arm-none-linux-gnueabi-gdbtui -s arm-linux-gdbtui
ln arm-none-linux-gnueabi-gprof -s arm-linux-gprof
ln arm-none-linux-gnueabi-ld -s arm-linux-ld
ln arm-none-linux-gnueabi-nm -s arm-linux-nm
ln arm-none-linux-gnueabi-objcopy -s arm-linux-objcopy
ln arm-none-linux-gnueabi-objdump -s arm-linux-objdump
ln arm-none-linux-gnueabi-ranlib -s arm-linux-ranlib
ln arm-none-linux-gnueabi-readelf -s arm-linux-readelf
ln arm-none-linux-gnueabi-size -s arm-linux-size
ln arm-none-linux-gnueabi-sprite -s arm-linux-sprite
ln arm-none-linux-gnueabi-strings -s arm-linux-strings
ln arm-none-linux-gnueabi-strip -s arm-linux-strip

有问题欢迎评论留言致信:blogs

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐