当我试图在构建pjsip for android时输入此命令,
TARGET_ABI = armeabi-v7a ./configure-android-use-ndk-cflags
发生此错误,
找不到编译器,请检查环境设置(TARGET_ABI等)
谁能给我一个解释
我相信你现在已经过去了,但对于找到这个帖子的其他人来说:
只需将NDK_TOOLCHAIN_VERSION
环境变量设置为4.9
即可
这可以通过在configure调用之前执行导出来完成:
export NDK_TOOLCHAIN_VERSION=4.9
./configure-android
或者与configure调用在同一命令行上:
NDK_TOOLCHAIN_VERSION=4.9 TARGET_ABI=<whatever> ./configure-android --use-ndk-cflags
在Android NDK的修订版13+中,默认编译器是Clang而不是GCC。 PJSIP 2.6(撰写本文时最新)尚未更新以正确解析Clang编译器位置,因此它声称“找不到编译器,请检查环境设置”。将NDK_TOOLCHAIN_VERSION
设置为4.9
迫使NDK使用GCC代替Clang,然后PJSIP会很高兴。
根据the NDK revision history的说法,GCC将在未来版本中删除。因此,如果有人在阅读本文时使用的NDK版本已被删除(在撰写本文时尚未发生),则需要降级NDK。
这个解决方案来自this answer和相应的PJSIP票can be found here。
GCC支持已经停止,已被Clang取代。
试试这个:
export CC="$ANDROID_NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang -target armv7-none-linux-androideabi -gcc-toolchain $NDK_TOOLCHAIN"
export CXX="$ANDROID_NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ -target armv7-none-linux-androideabi -gcc-toolchain $NDK_TOOLCHAIN"