QtCreator 4 和 CMake 参数

QtCreator 4 and CMake parameters

我曾经使用 QtCreator 打开一个基于 CMake 的 C++ 项目,并在配置项目时传递我自定义的 CMake 命令行参数。在最新版本的 QtCreator(准确地说是 QtCreator 4)中,这似乎不再可能了——QtCreator 使用自己的一组 CMake 变量及其默认值配置项目。这非常烦人,因为更改某些 CMake 变量的值的唯一方法是单击 'Projects' 并逐个修改变量,这确实很繁琐。我在一个文本文件中有特定机器的配置参数和该机器上的设置,我可以将其粘贴到 Qtcreator 的配置对话框中,然后粘贴到 运行 CMake,但这个对话框现在消失了。您知道是否有一种方法可以在打开新项目时传递自定义 CMake 值?

我尝试清理构建目录,删除源代码树中的 CMakeLists.txt.user,使用我的参数删除 运行 CMake,然后使用 QtCreator 打开项目。不幸的是,QtCreator 忽略了缓存的值并生成了它自己的 ...

"Tools" > "Options" > "Build & Run" > "Your kit" > "CMake configuration"

添加一行并重建。您也可以走捷径 Ctrl+5(项目模式)> "Manage Kits..."。

当我有 toolkit-specific 没有 project-specific 变量的 CMake 变量时,@Manuel 的回答对我来说是理想的。

当你有 project-specific 个 CMake 变量时,我对最近的 QtCreator 版本(~4+)有 seen/used 的选项是:

来自 QtCreator

  • 打开项目
  • 转到项目(左侧)和select构建设置
  • 在 CMake 下,使用 "Add" 按钮添加新设置
  • "Apply Configuration Changes"
  • "Build" 菜单,"Run CMake"
  • 备注:
    • 如果您的项目更新了 CMake 变量(大多数情况下都会这样做),您可能需要再次 "Apply Configuration Changes"。
    • 如果您启用了自动 运行 CMake 的功能,它可能会在后台启动,进一步混淆事情。这可能会造成先有鸡还是先有蛋的情况 - 嘘!

QtCreator 外部

  • 进入构建目录
  • 运行 照常使用您的命令进行 CMake
  • 打开 QtCreator
  • 打开项目
  • 在项目下 - 构建设置:
    • 确认 "Build directory:" 符合预期
    • 确认您的 CMake 变量出现在变量列表中

可悲的是,我发现这两个都非常不令人满意...

从 QtCreator 4.13 开始,可以为每个项目设置 CMake 参数(最终):

Project > Build Settings > CMake > Initial CMake parameters