如何打印check_cxx_source_runs()的详细运行报错信息?
check_cxx_source_runs 报错排查方案
查看CMake内置日志
CMake执行所有测试的完整输出都会存在构建目录的CMakeFiles/CMakeError.log文件中,check_cxx_source_runs的编译报错、链接错误、运行时输出都会完整记录在该文件内,直接打开即可看到和终端一致的全量报错信息。脚本内主动捕获输出
调用check_cxx_source_runs时指定OUTPUT_VARIABLE参数(要求CMake 3.14及以上版本),即可直接把测试的全量输出存入变量,失败时直接打印即可:include(CheckCXXSourceRuns) # 填写你的测试代码 set(TEST_CODE " #include <你依赖的头文件.h> int main() { // 测试逻辑 return 0; } ") # 执行测试并捕获输出 check_cxx_source_runs("${TEST_CODE}" DEPENDENCY_CHECK_PASS OUTPUT_VARIABLE DEPENDENCY_CHECK_OUTPUT ) # 失败时打印完整报错 if(NOT DEPENDENCY_CHECK_PASS) message(FATAL_ERROR "依赖检查失败,完整输出:\n${DEPENDENCY_CHECK_OUTPUT}") endif()开启调试模式打印实时输出
执行cmake配置命令时添加--debug-trycompile参数,CMake会把check_cxx_source_runs的测试代码、编译指令、运行指令、所有输出直接打印到终端,同时会保留临时测试文件到CMakeFiles/CMakeTmp目录,方便你手动复现问题:cmake --debug-trycompile <你的CMake配置参数> 源码路径
内容的提问来源于stack exchange,提问作者User 10482
相关产品推荐
相关产品推荐

