当我尝试链接64位lib时,我收到此错误。
unsupported ELF machine number 183
我认为,因为32位toolmachine试图链接64位lib这个错误即将来临。 有人知道如何克服这个问题吗?
答案 0 :(得分:0)
这个问题很老,但是最近我尝试为Android NDK编译一个简单的命令行应用程序时遇到了同样的问题。
您必须确保所有编译参数都适合:例如如果您使用64位库,则还必须使用64位工具链:
export NDK_ROOT=/ndk
SRC_FILES="hello.c"
OUT_FILE=hello
${NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang \
--target=aarch64-none-linux-android \
--gcc-toolchain=${NDK_ROOT}/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64 \
-I include/ \
--sysroot=${NDK_ROOT}/platforms/android-24/arch-arm64/ -D__ANDROID_API__=24 -DANDROID_ABI=arm64-v8a -g -DANDROID \
-isystem ${NDK_ROOT}/sysroot/usr/include \
-isystem ${NDK_ROOT}/sysroot/usr/include/aarch64-linux-android \
-ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes \
-pie -fpie -fuse-ld=gold -std=gnu99 \
-o ${OUT_FILE} ${SRC_FILES} -L . -lsome-64bit-lib
我将--gcc-toolchain
与32位混淆,并遇到了与您完全相同的问题。
也许再过一段时间,其他人偶然发现了这个问题。