項目使用cmake管理,由於項目的需要,核心代碼要求跨 Linux/Windows/Android 三平台。Windows和Linux都好說,但Android NDK費了一番功夫還是沒有解決。臨時的解決方案是交給Android Studio 建項目並加入c++支持,然后將cmake項目交給android studio 的 gradle 來解決配置交叉編譯工具鏈。
cmake 配置交叉編譯工具鏈的方式是通過指定 CMAKE_TOOLCHAIN_FILE ,通過配置交叉編譯工具鏈的 cmake 腳本來自動指定交叉編譯使用的編譯器和連接器以及各種搜索路徑。
這里使用的是github上的 android-cmake 項目,這個項目就是上面說的 cmake toolchain 腳本。
關於cmake toolchain腳本的問題,可以查看 cmake 的文檔來詳細了解。
根據 android-cmake 項目的 readme 文檔,並且進行了一些實際作業,並遇到了這些問題。
- 使用 cmake 命令行指定 -DCMAKE_TOOLCHAIN_FILE=C:\Users\uniq\source\repos\android-cmake\android.toolchain.cmake 並未生效,原因不明。
- 懷疑NDK可能需要使用 standalone 版本,而不是android-studio 下載的NDK-bundle,可以從 developer.android.com 下載最新的NDK。也許可以解決編譯出現無法讀取 platforms/usr/include/android/api-level.h 文件的問題。
以上是已經遇到的問題,如果解決了再繼續更新。