非常感謝博主 摩斯電碼提供的編譯方案,本人已經(jīng)成功搭建出一套最新最完整的arm gcc,原參考鏈接如下:
交叉編譯用于生成aarch64指令的GCC (9.2)
這里另外再為教程補(bǔ)充兩點,主要是原文的9、部分編譯glibc這里有問題
- 如果當(dāng)前環(huán)境存在其他版本的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
這步還需要一個重要的參數(shù):--disable-werror,是的,否則后面全編譯glibc肯定不通過,因為gcc把警告全當(dāng)成錯誤了,這一步可以無視警告,編譯通過。