如何修复为beaglebone black交叉编译linux内核时出现的gcc未找到错误



我正在尝试使用下面的命令行为Ubuntu 22.04上的beagbone-black交叉编译Linux内核:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- bb.org_defconfig

我得到以下错误:

HOSTCC  scripts/basic/fixdep
/bin/sh: 1: gcc: not found
make[2]: *** [scripts/Makefile.host:90: scripts/basic/fixdep] Error 127
make[1]: *** [Makefile:467: scripts_basic] Error 2
make: *** [Makefile:633: include/config/auto.conf.cmd] Error 2

作为各种搜索的结果,我已经验证了我在/bin:中有arm-linux-gneabi-gcc

/bin$ find . -maxdepth 1 -name "*gcc*" -print
./arm-linux-gnueabi-gcc-ranlib-11
./arm-linux-gnueabihf-gcc
./arm-linux-gnueabi-gcc-11
./arm-linux-gnueabi-gcc-nm
./arm-linux-gnueabihf-gcc-nm
./arm-linux-gnueabi-gcc-ranlib
./arm-linux-gnueabi-gcc-nm-11
./arm-linux-gnueabihf-gcc-ranlib
./arm-linux-gnueabihf-gcc-ar-11
./arm-linux-gnueabihf-gcc-ranlib-11
./arm-linux-gnueabihf-gcc-11
./arm-linux-gnueabi-gcc-ar
./arm-linux-gnueabihf-gcc-nm-11
./arm-linux-gnueabi-gcc
./arm-linux-gnueabihf-gcc-ar
./arm-linux-gnueabi-gcc-ar-11

我的路径包括/bin:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin 

我错过了什么?

简而言之:在交叉编译Linux内核时,您不仅需要一个交叉编译器,还需要一个用于主机的编译器(gcc(


在构建Linux内核和模块时,构建系统不仅为目标平台编译二进制文件,而且还会在这些二进制文件上执行一些程序。这些程序随Linux内核源代码一起提供,因此构建这些程序需要主机编译器

顺便说一下,以HOSTCC开头的一行表示该操作正是使用主机编译器。

最新更新