一、参考网址
1. Ubuntu18.04使用x86(32位)交叉编译工具链
2. error while loading shared libraries: libstdc++.so.6
二、实践
1. 安装交叉编译器arm-linux-gcc-3.3.2
1.1 下载arm-linux-gcc-3.3.2.tar.bz2 到任意的目录下
我把它下载到了我的工具文件夹里 ~/share/tools
arm-linux-gcc-3.3.2.tar.bz2 的下载地址如下:(有71.3M)
http://www.applieddata.net/developers/linux/files/tools/arm-linux-gcc-3.3.2.tar.bz2
1.2:解压
进入工具目录(视具体情况而定)
1) 解压
~/share/tools$ tar -xvf arm-linux-gcc-3.3.2.tar.bz2
2) 重命名
~/share/tools$ mv toolchain4app 3.3.2
3) 新建目录arm
~/share/tools$ sudo mkdir /usr/local/arm
4)将交叉编译器 拷贝到/usr/local/arm目录下
~/share/tools$ sudo cp -rv 3.3.2 /usr/local/arm
现在交叉编译程序集都位于/usr/local/arm/3.3.2/bin下面了
1.3: 安装x64兼容x86的运行库及环境
由于arm-linux-gcc-3.3.2是32位的交叉编译器,在ubuntu18.04上面还需安装兼容32位的环境,命令如下:
# sudo apt-get install lib32ncurses5 # sudo apt-get install lib32z1
1.4:修改环境变量
export PATH=/usr/local/arm/3.3.2/bin:$PATH
用此方法添加的环境变量会在掉电后丢失,因此,可以在启动脚本里做手脚,方法如下:
/home/usr/local# vim /etc/bash.bashrc
在文件的最后一行添加以上命令
export PATH=/usr/local/arm/3.3.2/bin:$PATH
保存退出,当重新登录root时 新的环境变量就会加载了,呵呵
检测一下
/home/usr/local# echo $PATH
/usr/local/arm/3.3.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
1.5:测试
/home # arm-linux-gcc –v
Reading specs from /usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/specs Configured with: ../gcc-3.3.2/configure --target=arm-linux --with- cpu=strongarm1100 --prefix=/usr/local/arm/3.3.2 i686-pc-linux-gnu --with-headers=/work/kernel.h3900/include --enable-threads=pthreads --enable-shared --enable-static --enable-languages=c,c++ Thread model: posix gcc version 3.3.2
这表示工具已经安装成功了,否则 会提示
bash: arm-linux-gcc: command not found
2. 安装arm-linux-gnueabihf-gcc-4.9
2.1 使用arm-linux-gnueabihf-gcc -v命令时,提示错误:
error while loading shared libraries: libstdc++.so.6
解决:安装如下两个库
sudo apt-get install libstdc++6 sudo apt-get install lib32stdc++6