簡體   English   中英

安卓工作室,CMake。 如何在編譯時打印調試消息?

[英]Android Studio, CMake. How to print debug message in compile time?

我正在使用 Android Studio 2.3 beta 3。我在我的 CMakeLists.txt 中添加了message(AUTHOR_WARNING "Hello CMake, hello Android")

但是在 Android Studio 中重建項目時,我只看到了幾次此消息。 在大多數情況下"Hello CMake, hello Android"構建完成后 Gradle 控制台中沒有"Hello CMake, hello Android"字符串。 我試過重新同步 gradle 和清理/重建項目,仍然沒有預期的輸出。

我的構建有一些問題(我認為這是不正確的路徑)所以我的目標是 - 在編譯時打印 CMake 變量以更好地了解實際發生的情況。

在項目樹中,您可以在每個生成的架構的文件夾中找到包含所有 cmake 輸出的日志。 文件的相對路徑應該是這樣的:

[project folder]/app/.externalNativeBuild/cmake/debug/arm64-v8a/cmake_build_output.txt

在這里您可以看到 cmake 腳本的所有 MESSAGE 調用。

CMake消息僅在生成時(當CMake用於生成您的項目/Makefile 時)。

CMake生成的一種方法是檢索構建文件夾和其中的CMakeCache.txt文件,然后:

  1. 通過讀取CMakeCache.txt文件並檢查CMAKE_COMMAND變量的值,檢索 cmake 可執行文件的路徑
  2. CMakeCache.txt目錄中打開命令提示符
  3. 運行: <path_to_cmake_found_at_point_1> .

注意:構建文件夾應該有一個CMakeCache.txt文件。 除非這樣做,否則上述方法將不起作用。

我的 android studio cmake 輸出:

編譯細節:

.cxx/cmake/debug/arm64-v8a/compile_commands.json

cmake輸出:

.cxx/cmake/debug/arm64-v8a/build_output.txt

輸出實際上現在在.cxx/cmake/debug/$ANDROID_ABI

在我的裝備上,我發現了 <module name>/build/intermediates/cxx/<cmake build type>/<hash>/meta/<ABI>/cmake_server_log.txt 中的日志——Android 的 C++ 編程變得越來越方便時間 :\\

我的裝備:

  • Android Studio 北極狐 2020.3.1 補丁 3
  • AGP 7.0.2
  • 搖籃 7.2.0
  • NDK 21.4.7075529
  • CMake 3.10.2
  • Windows 10(希望主機操作系統無關緊要)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM