[Linux]ubuntu16.04 LTS 升级aarch到最新版

版权声明:本文为博主原创文章,欢迎转载,转载请注明出处。 https://blog.csdn.net/wangyijieonline/article/details/87167979

最近在编译的时候遇到一个问题,同事那边用aarch-gcc v7.3编译是正常的,但是我这边编译的时候用aarch-gcc v5.4就会报错,据说是因为新版本的aarch-gcc会优化代码空间,我又不想升级到最新的ubuntu,于是就有了升级aarch-gcc和gcc的需求,下面是简单的记录

注意!!!下面的操作会导致不可逆的GCC覆盖操作,而且不能uninstall,强烈不建议用源码来编译安装GCC,我最后重装系统了,建议先在虚拟机试试


问题1:在哪下载源码
解决:
http://releases.linaro.org/components/toolchain/binaries/
我下的是最下面的latest-7版本

问题2:怎么用
解决:
其实我也不是很懂,readme里说的也不知道是什么,html里也没有找到有价值的参考,网上看的一个升级4.8的说是

./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --prefix=/usr/local/gcc_7.4.1

(注意这里一定建议加prefix选项!!!)

问题3:configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
解决:
下面就有提示
在这里插入图片描述
打开 ftp://gcc.gnu.org/pub/gcc/infrastructure/ 找到这几个
在这里插入图片描述
解压然后按下面的步骤
./configure
make
make check (据说如果make不报错的话make check的错误就可以忽略。。。)
sudo make install

安装完上面这三个工具以后应该就可以正常安装上面的aarch-gcc了,老规矩进到aarch-7的解压目录,然后

./configure
make -j4
sudo make install

问题4:/usr/include/linux/errno.h:1:10: fatal error: asm/errno.h: No such file or directory
解决:
sudo ln -s /usr/include/asm-generic /usr/include/asm

继续

make

问题5:gcc -v 还是原来的版本
解决:
因为现在旧的shell用的还是之前那一套环境变量之类的,重新打开一个中断输入
gcc -v就可以了
在这里插入图片描述


下面开始安装aarch64-gcc
还是gcc的这个目录,但是这次我们./configure的时候要指定不同的target

$ mkdir build-bin
$ cd build-bin
$ ./../configure --target=aarch64-linux --disable-multilib
$ make -j4
$ make install

问题6:configure: error: cannot compute suffix of object files: cannot compile
解决:
这是因为系统找不到上面安装的gmp、mpc、mpfr等支持库
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
(未解决)

猜你喜欢

转载自blog.csdn.net/wangyijieonline/article/details/87167979