gpt4 book ai didi

cmake - 当 CMake 命令失败时,有没有办法得到错误?

转载 作者:行者123 更新时间:2023-12-01 12:46:15 27 4
gpt4 key购买 nike

我正在编写脚本并开始使用 install 命令(用于复制文件),但它不工作。 CMake configure/generate 没有显示任何错误(即它没有停止并且没有显示与此命令相关的警告/错误)并且该命令似乎没有工作,因为我没有看到任何文件被复制。

因为我是新手,所以我想知道:

  • 如何判断安装失败(可能是源目录错误,或者目标目录错误)?它似乎无声地失败了。
  • 是否有错误代码可供我检查,看看哪里出了问题?
  • 什么时候调用install?当我点击配置?或者项目什么时候建成?

我在 Windows 上。

最佳答案

对于一般问题,有多种方法可以从 CMake 获得更详细的输出——我刚刚学到了第三种用于处理粗糙错误的方法:

  1. 为了调试 CMake 配方,我喜欢使用 message 命令,您甚至可以遍历目录并发出消息*
    • 例如message( STATUS "SQLITE3_LIB: ${SQLITE3_LIB} SQLITE3_PATH: ${SQLITE3_PATH}") # 打印 SQLITE3_LIB 和 SQLITE3_PATH 变量
  2. 执行详细构建以排除构建本身的故障
    • 运行 make VERBOSE=1(使用 make,ninja -v 使用 ninja 等)来帮助您解决该过程,例如 cmake -DYOUR_OPTION ="插入值"~/path/to/files/&& make VERBOSE=1
  3. 如果你发现了一个难以理解的错误,我刚刚了解到我们可以在失败的命令上运行 strace - 这可能有点让人不知所措,但是当你用尽#1 和#2 时会有帮助
    • 我刚刚使用 strace/usr/bin/cmake -E copy_directory $MY_SOURCE_PATH $MY_DEST_PATH 试图理解复制失败的原因

*我用过DLRdave's answer打印出 INCLUDE_DIRS 的另一个问题:

get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
foreach(dir ${dirs})
message(STATUS "dir='${dir}'")
endforeach()

关于cmake - 当 CMake 命令失败时,有没有办法得到错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15590023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com