Android Studio,CMake.如何在编译时打印调试消息?

Ala*_*kov 10 c++ android cmake android-studio android-gradle-plugin

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

但是在Android Studio中重建项目时,我只看到过几次这条消息.在大多数情况下"Hello CMake, hello Android",构建完成后Gradle Console中没有字符串.我已经尝试过resync gradle和clean/rebuild项目,仍然没有预期的输出.

我的构建存在一些问题(我认为这是不正确的路径)所以我的目标 - 在编译时打印CMake变量以更好地理解实际发生的事情.

goe*_*goe 27

在项目树中,您可以在每个生成的体系结构的文件夹中找到包含所有cmake输出的日志.文件的相对路径应该是这样的:

[project folder]/app/.externalNativeBuild/cmake/debug/arm64-v8a/cmake_build_output.txt
Run Code Online (Sandbox Code Playgroud)

在这里,您可以看到cmake脚本的所有MESSAGE调用.

  • 我可以找到这个文件,但我的消息不在其中。 (2认同)
  • 我找不到该文件(Windows 10 上的 Android Studio 3.2.1)。有 CMakeCache.txt 和 /CMakeFiles/CMakeOutput.log 但都不包含 CMake 输出 (2认同)

dre*_*rjm 7

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文件。除非这样做,否则上述方法将不起作用。


lbs*_*eek 7

我的 android studio cmake 输出:

编译细节:

.cxx/cmake/debug/arm64-v8a/compile_commands.json
Run Code Online (Sandbox Code Playgroud)

cmake输出:

.cxx/cmake/debug/arm64-v8a/build_output.txt
Run Code Online (Sandbox Code Playgroud)