LuaJIT 编译 Android NDK 失败,CentOS

我尝试按照官方指南(http://luajit.org/install.html#android)使用 Android NDK 编译 LuaJIT,但是出现了一些问题。我已经搜寻了 2 天了,但是无法解决。

这是我的 build.sh:

NDK=/opt/android/ndk
NDKABI=14
NDKVER=$NDK/toolchains/arm-linux-androideabi-4.9
NDKP=$NDKVER/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-arm"
NDKARCH="-march=armv7-a -mfloat-abi=softfp -Wl,--fix-cortex-a8"
make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF $NDKARCH"

我确定 NDK 路径正确并已经添加到环境变量中。另外,build.sh也放在了正确的位置,并安装了 gcc。当我运行 build.sh 时,出现了一些错误:

==== Building LuaJIT 2.0.5 ====
make -C src
gcc: Command not found/bin/arm-linux-androideabi-
make[1]: Entering directory `/root/LuaJIT-2.0.5/src'
gcc: Command not found/bin/arm-linux-androideabi-
gcc: Command not found/bin/arm-linux-androideabi-
gcc: Command not found/bin/arm-linux-androideabi-
gcc: Command not found/bin/arm-linux-androideabi-
gcc: Command not found/bin/arm-linux-androideabi-
Makefile:254: *** Unsupported target architecture.  Stop.
make[1]: Leaving directory `/root/LuaJIT-2.0.5/src'
make: *** [default] Error 2

我已经尽力了,但是没有什么头绪。请帮帮我,谢谢。

点赞
用户9150068
用户9150068

我已经解决了。看起来是由于变量引用导致的错误。我尝试将所有参数都写在一行,它就工作了。

make HOST_CC="gcc -m32" CROSS=/opt/android/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- TARGET_FLAGS="--sysroot=/opt/android/ndk/platforms/android-14/arch-arm -march=armv7-a -mfloat-abi=softfp -Wl,--fix-cortex-a8"

我不太擅长 shell,所以现在仍然不知道如何使用变量。不过幸运的是,我已经成功构建了LuaJIT。

2017-12-29 13:55:11