binutils カナダクロスコンパイルのインストール中にエラーが発生しました。

binutils カナダクロスコンパイルのインストール中にエラーが発生しました。

Android NDKを使用してAndroid用binutilsをコンパイルしようとしているので、見つかったガイドを使用してNDKをインストールしました。ここ(特に「高レベルの方法」)Luaをうまくコンパイルして動作することを証明しました。

私が従ったステップは次のとおりです。

export NDK=/path/to/ndk
export SYSROOT=$NDK/platforms/android-23/arch-arm
$NDK/build/tools/make_standalone_toolchain.py --arch=arm --api=23 --install-dir /tmp/android-toolchain
export PATH=/tmp/android-toolchain/bin:$PATH

mkdir build-binutils
cd binutils
export TARGET=arm-linux-androideabi
export HOST=$TARGET
export BUILD=x86_64-linux
../binutils-2.27/configure --host=$HOST --target=$TARGET --build=$BUILD --with-sysroot=$SYSROOT --disable-nls --disable-werror
make
make install

make install次の出力で失敗します。

This is not dpkg install-info anymore, but GNU install-info
See the man page for ginstall-info for command line arguments
./libtool: line 1118: arm-linux-androideabi-ranlib: command not found
make[5]: *** [install-bfdlibLTLIBRARIES] Error 127
make[4]: *** [install-am] Error 2
make[3]: *** [install-recursive] Error 1
make[2]: *** [install] Error 2
make[1]: *** [install-bfd] Error 2
make: *** [install] Error 2

これはarm-linux-androideabi-ranlibうまく動作します。

$ arm-linux-androideabi-ranlib
Usage: arm-linux-androideabi-ranlib [options] archive
 Generate an index to speed access to archives
 The options are:
  @<file>                      Read options from <file>
  --plugin <name>              Load the specified plugin
  -D                           Use zero for symbol map timestamp
  -U                           Use actual symbol map timestamp (default)
  -t                           Update the archive's symbol map timestamp
  -h --help                    Print this help message
  -v --version                 Print version information
arm-linux-androideabi-ranlib: supported targets: elf32-littlearm elf32-    bigarm elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex

クロスコンパイルツールチェーンをインストールする正しい方法は何ですか?

答え1

犯人を見つけました。実際にはsudo make installランニングではなくランニング中であり、make installユーザー切り替えによって一時パスは無視されていました。解決策は、実行しsudo suてからPATHを更新して再実行することです。make install

関連情報