为什么会出现“arm-linux-gcc:未找到”这样的错误?

为什么会出现“arm-linux-gcc:未找到”这样的错误?

为了构建我的主板的 u-boot,我遵循了以下两个命令:

$ sudo make nanopi_h3_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
$ sudo make ARCH=arm CROSS_COMPILE=arm-linux-

我从第一个命令得到了结果:配置写入.config 这意味着成功。但从第二个命令得到以下内容:

make: arm-linux-gcc: No such file or directory
/bin/sh: 1: arm-linux-gcc: not found
dirname: missing operand
Try 'dirname --help' for more information.
scripts/kconfig/conf  --silentoldconfig Kconfig
./scripts/binutils-version.sh: line 18: arm-linux-as: command not found
  CHK     include/config.h
  CFG     u-boot.cfg
/bin/sh: 1: arm-linux-gcc: not found
make[1]: *** [scripts/Makefile.autoconf:79: u-boot.cfg] Error 1
make: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/uboot.release'.  Stop.

似乎来自arm-linux-gcc的麻烦,但我运行了命令“arm-linux-gcc”,它有效。那么,为什么第一个命令可以通过arm-linux-gcc,而第二个命令却失败了呢?

答案1

我猜问题是你的 ARM 工具链安装在不在roots上的某个地方PATH;由于您正在使用 进行构建sudo,因此无法找到编译器。

要解决此问题,请恢复构建树中所有文件的正确所有权:

sudo chown -R $USER .

sudo此处是必需的,因为您不拥有所有文件。)

现在运行构建没有 sudo:

make ARCH=arm CROSS_COMPILE=arm-linux-

内核构建中唯一需要运行的部分是root安装阶段;由于您正在进行交叉编译,因此您不需要在构建系统上执行此操作(您可能会将构建的内核和模块复制到另一个设备,并将它们安装在那里)。

相关内容