Ubuntu16.04 交叉编译工具链的安装

步骤1:打开虚拟机,在/usr/local/下创建/usr/local/arm文件夹

步骤2:先将安装包从Windows中弄到linux中去。可以用共享文件夹(从共享文件夹复制到/usr/local/arm)

步骤3:解压。tar -jxvf arm-2009q3.tar.bz2


32位与64位不兼容问题:

输入命令后,出现下面的错误提示信息:

/home/aldrich/arm/arm-linux-gcc-4.3.2/bin/arm-linux-gcc:
line 3:
/home/aldrich/arm/arm-linux-gcc-4.3.2/bin/arm-none-linux-gnueabi-gcc:No such file or directory

这里写图片描述

说是出现这种问题的原因是由于Ubuntu16.04用的是64位的,按以前的解决方法就是使用命令:

sudo apt-get install ia32-libs 装一些32位的库

这里写图片描述

出现上述界面是因为Ubuntu16.04版本已不支持ia32-libs的软件包,而是使用了lib32ncurses5、lib32z1软件包做为替代,所以在Ubuntu16.04版本当中应该安装执行:

sudo apt-get install lib32ncurses5 lib32z1

待安装完32位的库之后,再使用命令:arm-linux-gcc -v,这一次就成功了,如下图

这里写图片描述

查看路径命令

echo $PATH

可见成功生成了二进制文件,至此,交叉编译工具就配置完成了。

vi ~/.bashrc

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

最后到/usr/local/arm/arm-2009q3/bin下添加vi a.sh

复制末尾文本,到a.sh 然后运行./a.sh 即可

交叉编译工具验证

编译一个hello.c文件

#include<stdio.h>
int main()
{
    printf("hello world!\n");
}

使用命令:arm-linux-gcc hello.c -o hello 看是否编译成功

这里写图片描述

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

猜你喜欢

转载自blog.csdn.net/m0_37182543/article/details/79122098