我的場景很簡單。我有一個本地庫,我使用CMake的externalNativeBuild
系統進行編譯。這適用於構建我的應用程序,但我希望在機器本地(即非仿真器)單元測試期間加載相同的庫。如何使用Gradle NDK構建爲主機編譯?
如果我有一個現有的Gradle NDK設置,包括以下內容,是否有重用此方法來編譯主機操作系統庫(例如macOS)的方法?
defaultConfig {
ndk {
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
externalNativeBuild {
cmake {
arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=c++_static'
}
}
}
externalNativeBuild {
cmake {
path 'CMakeLists.txt'
}
}
它可能會「瞄準」Android,但我使用buck來構建機器本地二進制文件,它工作得很好。這裏的問題是我如何使用gradle toolchain來實現同樣的事情。 – passy
是的,但Android的gradle支持僅適用於_only_ Android(至少在涉及C++時,我實際上並不瞭解Java)。如果你想爲gradle中的其他系統構建C++,我想你最終可能會編寫一個或多或少的單獨構建文件:https://docs.gradle.org/current/userguide/native_software.html –