在Android中构建PJSiP时出错

时间:2016-11-14 17:41:04

标签: android android-ndk pjsip

当我在构建pjsip for android时尝试使用此命令时,

TARGET_ABI = armeabi-v7a ./configure-android --use-ndk-cflags

发生此错误,

找不到

编译器,请检查环境设置(TARGET_ABI等)

有人可以给我一个解释.pls

2 个答案:

答案 0 :(得分:7)

我相信你现在已经过去了,但对于找到这个帖子的其他人来说:

只需将4.9环境变量设置为export NDK_TOOLCHAIN_VERSION=4.9 ./configure-android

即可

这可以通过在配置调用之前进行导出来完成:

NDK_TOOLCHAIN_VERSION=4.9 TARGET_ABI=<whatever> ./configure-android --use-ndk-cflags

或与configure调用在同一命令行上:

NDK_TOOLCHAIN_VERSION

在android NDK的修订版13+中,默认编译器是Clang而不是GCC。 PJSIP 2.6(撰写本文时最新)尚未更新以正确解析Clang编译器位置,因此它声称“找不到编译器,请检查环境设置”。将4.9设置为public static void main(String[] args) throws IOException { { String privateKey = new String(Files.readAllBytes(Paths.get(PRIVATE_KEY_FILE))); JWTEncryptionPreferences encryptionPref = new JWTEncryptionPreferences(); encryptionPref.setPublicKeyID(PUBLIC_KEY_ID); encryptionPref.setPrivateKey(privateKey); encryptionPref.setPrivateKeyPassword(PRIVATE_KEY_PASSWORD); encryptionPref.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256); IAccessTokenCache accessTokenCache = new InMemoryLRUAccessTokenCache(MAX_CACHE_ENTRIES); BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(ENTERPRISE_ID, CLIENT_ID, CLIENT_SECRET, encryptionPref, accessTokenCache); Iterable<com.box.sdk.BoxUser.Info> users = BoxUser.getAllEnterpriseUsers(api, "App"); for (BoxUser.Info user : users) { BoxDeveloperEditionAPIConnection userApi = BoxDeveloperEditionAPIConnection.getAppUserConnection(user.getID(), CLIENT_ID, CLIENT_SECRET, encryptionPref, accessTokenCache); System.out.println(new BoxUser(userApi, user.getID()).getInfo().getName()); BoxFolder boxFolder = BoxFolder.getRootFolder(userApi); Iterable<com.box.sdk.BoxItem.Info> items = boxFolder.getChildren(); for (BoxItem.Info item : items) { System.out.println("\t" + item.getName()); } } } 会强制NDK使用GCC代替Clang,然后PJSIP会很高兴。

根据the NDK revision history,GCC将在以后的版本中删除。因此,如果有人在阅读本文时使用的NDK版本已被删除(在撰写本文时尚未发生),则需要降级NDK。

此解决方案来自this answer和相应的PJSIP票证can be found here

答案 1 :(得分:0)

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"
相关问题