gpt4 book ai didi

cmake - 如何查看Qt Creator执行的CMake命令行语句?

转载 作者:行者123 更新时间:2023-12-04 03:04:11 24 4
gpt4 key购买 nike

我正在尝试调试命令行 CMake 故障。相同的 CMake 文件在 Qt Creator 中工作,Qt Creator 窗口中的参数与我在命令行中输入的参数匹配。

这让我觉得 Qt Creator 正在添加一些额外的参数,这是有道理的,因为生成器下拉菜单有几个指定架构和 CMake 版本的选项。

有没有办法让 Qt Creator 执行的 CMake 命令产生期望的结果,特别是传递给 CMake 可执行文件的参数?

我找到了一篇关于查看 CMakeCache 文件以进行取证的帖子,但这只能证明存在差异,并不能快速告诉我要更改的参数。

最佳答案

尝试将以下 block 添加到 CMakeLists.txt 的末尾并再次从 Qt Creator 运行 CMake。 CMake 输出应列出所有已通过 -D 命令行参数传递的变量。

get_cmake_property(CacheVars CACHE_VARIABLES)
foreach(CacheVar ${CacheVars})
get_property(CacheVarHelpString CACHE ${CacheVar} PROPERTY HELPSTRING)
if(CacheVarHelpString STREQUAL "No help, variable specified on the command line.")
get_property(CacheVarType CACHE ${CacheVar} PROPERTY TYPE)
if(CacheVarType STREQUAL "UNINITIALIZED")
set(CacheVarType)
else()
set(CacheVarType :${CacheVarType})
endif()
set(CMakeArgs "${CMakeArgs} -D${CacheVar}${CacheVarType}=\"${${CacheVar}}\"")
endif()
endforeach()
message("CMakeArgs: ${CMakeArgs}")

有关详细信息,请参阅 this answer .

这不会显示通过 -G arg 选择的生成器(如果有)。要找到它,您需要在 CMakeCache.txt 中查找 CMAKE_GENERATOR:INTERNAL=...

如果这不能帮助您确定总体问题,您可能应该听从@arrowdodger 的建议并发布有关您遇到的错误和您的两个构建环境的更多详细信息。例如,错误可能只是从源代码树的子目录运行 CMake 引起的。

关于cmake - 如何查看Qt Creator执行的CMake命令行语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13074606/

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