「arm-linux-gcc:見つかりません」エラーが発生するのはなぜですか?

「arm-linux-gcc:見つかりません」エラーが発生するのはなぜですか?

私のボードのu-bootを構築するために、次の2つのコマンドに従いました。

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

最初のコマンドで結果を得ました。設定は.configに書き込まれます。 それは成功を意味します。しかし、2番目のコマンドでは次のようになります。

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を渡しますが、2番目のコマンドが失敗するのはなぜですか?

答え1

問題は、ARMツールチェーンがroots以外の場所にインストールされていることですPATH。でビルドしているため、sudoコンパイラが見つかりません。

この問題を解決するには、ビルドツリー内のすべてのファイルの正しい所有権を復元します。

sudo chown -R $USER .

sudoすべてのファイルを所有していないため、この作業が必要です。)

今ビルドを実行してください。いいえ sudo:

make ARCH=arm CROSS_COMPILE=arm-linux-

実行する必要があるカーネルビルドの唯一の部分はrootインストールステップです。クロスコンパイルしているので、ビルドシステムでこれを行う必要はありません。ビルドされたカーネルとモジュールを別のデバイスにコピーしてインストールできます。そこ)。

関連情報