我正在尝试交叉编译最新的主线 Linux 内核,以便我可以将其用于 RPI3b+ 上的 U-Boot。但是,它无法运行 make。
我已经通过
sudo apt-get install gcc-aarch64-linux-gnu
确保我拥有编译器
我有
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
并且已经跑了sudo apt-get update
当我运行这个...
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- defconfig
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc) # This is where it fails
它在执行的最后一行失败了
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)
CC scripts/mod/empty.o
aarch64-linux-gnu-gcc: error: unrecognized argument in option ‘-mabi=aapcs-linux’
aarch64-linux-gnu-gcc: note: valid arguments to ‘-mabi=’ are: ilp32 lp64
aarch64-linux-gnu-gcc: error: unrecognized command-line option ‘-mtp=cp15’
aarch64-linux-gnu-gcc: error: unrecognized command-line option ‘-mfpu=vfp’
aarch64-linux-gnu-gcc: error: unrecognized command-line option ‘-msoft-float’
make[2]: *** [scripts/Makefile.build:244: scripts/mod/empty.o] Error 1
make[1]: *** [/home/eden/Documents/Testing/uboot/linux/Makefile:1207: prepare0] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:240: __sub-make] Error 2
我似乎在互联网上找不到任何此错误的出现。有人可以指出可能出了什么问题吗?
谢谢
有人知道可能出了什么问题吗?
在 make 命令中指定
ARCH=arm
似乎是矛盾的,因为您反复提到 “aarch64”。这是两种不同的(尽管相关)架构。
尝试在 make 命令中使用
ARCH=arm64
来代替。