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