非常感谢博主 摩斯电码提供的编译方案,本人已经成功搭建出一套最新最完整的arm gcc,原参考链接如下:
交叉编译用于生成aarch64指令的GCC (9.2)
这里另外再为教程补充两点,主要是原文的9、部分编译glibc这里有问题
- 如果当前环境存在其他版本的aarch64-linux-gnu-gcc的话,以下这部大概率报错:
../code/glibc-2.30/configure --prefix=/home/pengdl/work/GNU/mk_cross_compiler/cross-gcc/aarch64-linux-gnu --build=$MACHINE --host=aarch64-linux-gnu
正确的做法是在../code...前添加原文第8部中半编译好的aarch64 gcc路径,如在我的电脑中就是:
CC=/home/niezixuan/workspace/GNU/mk_cross_compiler/cross-gcc/bin/aarch64-linux-gnu-gcc ../code/glibc-2.30/configure.....
否则可能使用其他的aarch64-linux-gnu-gcc编译configure,自然会报错
- 还是这一步:
../code/glibc-2.30/configure --prefix=/home/pengdl/work/GNU/mk_cross_compiler/cross-gcc/aarch64-linux-gnu --build=$MACHINE --host=aarch64-linux-gnu
这步还需要一个重要的参数:--disable-werror
,是的,否则后面全编译glibc肯定不通过,因为gcc把警告全当成错误了,这一步可以无视警告,编译通过。