首页 > 解决方案 > QT Creator CMake 配置问题:忽略添加参数

问题描述

在 QT Creator 中,可以从 CMakeLists.txt 加载项目。

执行 cmake 有时需要正确配置定义或其他参数。就我而言,这是通过在命令行上执行来完成的

cmake .. -DTARGET_MYPROJECT_NAME=MY_App -DTARGET_MYPROJECT_OS=linux

要在 QT Creator 中设置TARGET_MYPROJECT_NAME和设置值TARGET_MYPROJECT_OS,需要转到 Projects (Ctrl+5) 并为每个相应的构建类型(发布和调试等)输入键和值。

当我在输入框中输入完参数后,我点击输入框正下方的“应用配置更改”。

单击“Build”->“Run Cmake”时失败,因为没有给出参数。在 QT-Creator 的命令行输出中,我可以看到它们没有设置。如果我重复该过程但没有点击“应用配置更改”,它会要求我在运行 cmake 之前保存。结果是一样的。

我错过了什么?为什么不使用给定的参数调用 CMake。清除 CMakeFiles 文件夹并删除 CMakeLists.txt.user 和 CMakeCache.txt 但到目前为止没有任何变化。

我正在使用 QT Creator 4.13.1 (The Snap) 和 Ubuntu 20.04 更新:在“初始 CMake 参数”而不是列表中提供参数,导致 CmakeCache.txt 不包含这些参数,并且 CMakeLists.txt.user 文件在包含这些参数。此步骤也是可重现的(使用 apt get 而不是 snap store 安装了其他 cmake 和 qt creator)

编辑:完成从生成器表达式的更改与名称冲突

标签: linuxcmakeqt-creator

解决方案


  1. TARGET_NAME是内置的生成器表达式。例如,只需将其重命名MY_TARGET_NAME为 。

  2. v4.13 之前的 Qt Creator 存在一些问题

我们彻底改进了 Qt Creator 中的 CMake 支持。CMake 支持的最大问题之一是 Qt Creator 对项目的构建配置有自己的想法,这可能与现有构建严重冲突,或者如果稍后在命令行上更改配置可能会导致问题。在新版本中,Qt Creator 接受现有的构建配置作为事实,无论套件中的 CMake 设置如何。

  1. 添加自定义定义时,它首先出现在命令行上,然后保存到 CMakeCache.txt,并从此文件中进一步读取。

更新。

CMP0037

不允许由一个或多个 CMake 生成器保留的目标名称。其中包括所有、清洁、帮助和安装。


推荐阅读