在之前的章节中,学习了如何安装了4.8.3的交叉编译工具链:
但是,在之后学习内核编译时,由于我的树莓派内核版本较高,为6.1,所以在使用4.8.3版本的交叉编译工具链来进行内核配置的时候会提示版本过低:
于是只好安装更高版本的交叉编译工具链,经过实践:虽然报错提示最低也要使用5.1.0版本的交叉编译器,但是我下载5.3或者5.5版本的依然会报错。可见,交叉编译工具链不是版本越高越好,而是要选择和内核版本兼容的:我最后安装了5.1版本的
不同版本的交叉编译工具链下载地址:
进入网站后:
- 下载下来后是.tar.xz后缀的压缩文件,先用windows解压一层变成.tar文件再拖入虚拟机(再解压tar的话windows又会提示大小写不同的文件名属于同名文件了):
sudo tar -xvf gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf.tar //解压
- 解压后进入该文件夹,再进入bin,找到“arm-linux-gnueabihf-gcc”:
- 为了防止和之前4.8.3版本的交叉编译器名字重叠,创建一个名为“arm-linux-gcc-5.1”的软链接指向它:
sudo ln -s arm-linux-gnueabihf-gcc arm-linux-gcc-5.3
- 同样的,为4.8.3也重新创建一个软链接“arm-linux-gcc-4.8.3”来区分:
1. cd /home/mjm/ras_CrossCompile/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
2. ln -s arm-linux-gnueabihf-gcc-4.8.3 arm-linux-gcc-4.8.3
- 然后永久性添加环境变量:
1. 将/home/mjm/ras_CrossCompile/gcc-linaro-5.1-2015.08-x86_64_arm-linux-gnueabihf/bin添加上4.8.3的环境变量之后,用“:”分隔
2. vi /home/mjm/.bashrc
3. 将1的内容加入2的文件最下方,保存退出
4. source /home/mjm/.bashrc
- 最后重新开一个终端输入“arm-linux-gcc-5.1 -v”和“arm-linux-gcc-4.8.3 -v”测试:
输入arm-linux-gcc-5.1 -v:
输入arm-linux-gcc-4.8.3 -v:
可见,成功在虚拟机上安装了不同版本的交叉编译工具链,且使用了软链接来自由的使用他们!