linux - 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)
编辑:完成从生成器表达式的更改与名称冲突
解决方案
TARGET_NAME
是内置的生成器表达式。例如,只需将其重命名MY_TARGET_NAME
为 。v4.13 之前的 Qt Creator 存在一些问题
我们彻底改进了 Qt Creator 中的 CMake 支持。CMake 支持的最大问题之一是 Qt Creator 对项目的构建配置有自己的想法,这可能与现有构建严重冲突,或者如果稍后在命令行上更改配置可能会导致问题。在新版本中,Qt Creator 接受现有的构建配置作为事实,无论套件中的 CMake 设置如何。
- 添加自定义定义时,它首先出现在命令行上,然后保存到 CMakeCache.txt,并从此文件中进一步读取。
更新。
不允许由一个或多个 CMake 生成器保留的目标名称。其中包括所有、清洁、帮助和安装。
推荐阅读
- java - 自定义 sonar-xml 插件突出冲突
- c# - 代表调用无法更新已打开的报告
- c++ - bool 函数不能作为 while 条件工作
- c++ - 执行 EXE windows 服务时 C++ 中的 CAS 策略错误
- java - 点击登录按钮并尝试获取片段 EditText 值时应用程序崩溃
- java - Microsoft graph API Java HTTP 客户端不允许通过补丁更新
- wordpress - 特征图像未显示为标题图像或使用 undsgn 的 uncode 主题发布缩略图
- node.js - 测试用例 React 与 Node js
- javascript - 使用 THREE.js 渲染 webXR AR 场景的正确方法是什么?
- java - 如何使用 Java Native Access 从打开的 Windows 控制台(命令提示符)读取内容