当我在构建pjsip for android时尝试使用此命令时,
TARGET_ABI = armeabi-v7a ./configure-android --use-ndk-cflags
发生此错误,
找不到编译器,请检查环境设置(TARGET_ABI等)
有人可以给我一个解释.pls
答案 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"