[英]Canot build Android NDK project after latest NDK update and gcc deprecation
我已將 Android NDK 更新到可用的最新版本,現在我的項目不再編譯。 在第一次嘗試編譯項目時,我收到了一條關於gcc
棄用的消息,並邀請我用clang
替換它。
所以我試圖編輯
externalNativeBuild {
cmake {
arguments '-DANDROID_TOOLCHAIN=gcc', '-DANDROID_STL=gnustl_static'
}
}
在
externalNativeBuild {
cmake {
arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static'
}
}
但不幸的是,現在我收到錯誤:
Error while executing process C:\Android\android-sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {-HD:\My Project\myApp\jni -BD:\My Project\myApp\.externalNativeBuild\cmake\release\armeabi-v7a -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-21 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=D:\My Project\myApp\gradleBuild\intermediates\cmake\release\obj\armeabi-v7a -DCMAKE_BUILD_TYPE=Release -DANDROID_NDK=C:\Android\android-sdk\ndk-bundle -DCMAKE_TOOLCHAIN_FILE=C:\Android\android-sdk\ndk-bundle\build\cmake\android.toolchain.cmake -DCMAKE_MAKE_PROGRAM=C:\Android\android-sdk\cmake\3.6.4111459\bin\ninja.exe -GAndroid Gradle - Ninja -DANDROID_TOOLCHAIN=clang -DANDROID_STL=gnustl_static}
NDK 更新之前的項目編譯工作正常。
此運行時與 NDK 不再支持的 GCC 緊密耦合。 因此,它尚未收到多個版本的更新。 NDK 中的版本支持大部分 C++11(參見第 82 期),並且該庫的某些部分與 Clang 不兼容。
此庫已棄用,並將在 NDK r18 中刪除。 從 NDK r16 開始,您應該改用 libc++。
你應該使用"-DANDROID_STL=c++_static"
而不是-DANDROID_STL=gnustl_static
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.