答案是要理解Gradle利用CMake構建Android項目的android NDK組件(共享庫),並且CMake利用Ninja作爲構建系統來處理對編譯器的調用。 android NDK使用的編譯器現在默認爲LLVM-> Clang。
因此,要實際看到鐺聲呼叫,您必須爲您的Android項目的每個目標找到build.ninja
文件。
在我的情況下,我只爲armeabi-v7a
目標架構構建。因此,相關build.ninja
文件中發現:
/home/me/projects/my_proj/app/.externalNativeBuild/cmake/debug/armeabi-v7a
/home/me/projects/my_proj/app/.externalNativeBuild/cmake/release/armeabi-v7a
cd
要麼目錄,然後運行:
ninja -v
即-v
選項來查看所有的鐺編譯器,本地生成的呼出鍵(android NDK)你的android項目的一部分生成。
請注意,如果您已經通過Android軟件包管理器安裝了CMake,您可能會發現忍者沒有安裝在您的PATH
上的位置。對我來說,忍者的二進制文件位於如下:
~/Android/Sdk/cmake/3.6.3155560/bin/ninja
(同一目錄CMake的二進制)
因此,我看到所有我的Android項目的調試armeabi-V7A構建我得鐺編譯器調用運行:
cd /home/me/projects/my_proj/app/.externalNativeBuild/cmake/debug/armeabi-v7a
~/Android/Sdk/cmake/3.6.3155560/bin/ninja -v
注意如果忍者告訴你ninja: no work to do.
然後運行:
~/Android/Sdk/cmake/3.6.3155560/bin/ninja clean
相關忍者文檔 - >https://ninja-build.org/manual.html#_extra_tools
來源
2017-06-22 10:41:42
bph
您可以使用-DCMAKE_VERBOSE_MAKEFILE = 1在我的答案在這裏解釋:https://stackoverflow.com/a/44709786/301166 – Bram