使用低版本交叉编译器
看版本
-
Linux 电脑操作系统位数
x86_64 是 64 位,i686 是 32 位;
1 2
jerry@CLOU-PC ~ → uname --m x86_64
-
目标 arm-linux 操作系统信息
armv7l 选择 arm-linux-gnueabihf;
具体选择见:https://www.linaro.org/downloads/;
1 2
root@CL818C90:~# uname --m armv7l
卸载高版本的 arm-linux-gnueabihf
如果使用 sudo apt-get install gcc-arm-linux-gnueabihf
安装过交叉编译器,可使用 sudo apt-get remove --auto-remove gcc-arm-linux-gnueabihf
进行卸载;
linaro 官网下载
官网 下载页 提供了二进制和源码下载;
为了方便,直接下载二进制使用;
进入 4.9 二进制下载页 下载 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz 文件;
其中 x86_64 和我的 Linux PC 匹配,arm-linux-gnueabihf 和目标 arm 匹配;
使用方法
1
2
3
tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
sudo rm /bin/arm-linux-gnueabihf-*
sudo ln -sf $(pwd)/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-* /bin/
降低 gcc 版本
这个算低频需求吧,使用低版本交叉编译器不需要降低 gcc 版本;
安装 gcc-4.9
首先加入一个老版本源:
1
2
3
4
sudo vim /etc/apt/sources.list
# 加入下面的源
deb http://mirrors.aliyun.com/ubuntu/ xenial main universe
接着更新并安装gcc、g++:
1
2
3
sudo apt update
sudo apt install g++-4.9
sudo apt install gcc-4.9
切换 gcc 和 g++ 版本
我的环境中存在 gcc-4.9 和 gcc-9;
设置管理 gcc:
实际上就是命令链接,将
/usr/bin/gcc
链接到/etc/alternatives/gcc
,其中 gcc 是我们设置的管理名称;而将它链接到/usr/bin/gcc-4.9
还是/usr/bin/gcc-9
受优先级和手动配置的控制;删除可用
sudo update-alternatives --remove gcc /usr/bin/gcc-4.9
;显示详情
update-alternatives --display gcc
1
2
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50
设置管理 g++:
1
2
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 50
配置 gcc 版本:
1
sudo update-alternatives --config gcc
1
2
3
4
5
Selection Path Priority Status
----------------------------------------------------------
0 /usr/bin/gcc-9 50 auto mode
* 1 /usr/bin/gcc-4.9 40 manual mode
2 /usr/bin/gcc-9 50 manual mode
配置 g++ 版本:
1
sudo update-alternatives --config g++
1
2
3
4
5
Selection Path Priority Status
----------------------------------------------------------
0 /usr/bin/g++-9 50 auto mode
* 1 /usr/bin/g++-4.9 40 manual mode
2 /usr/bin/g++-9 50 manual mode