1.概要
安装完qt发现,qmake可以运行,但是cmake不行,最终返现cmke没有设置,导致的。
之前的安装也没有设置过,直接就能用。
这次cmake 是后安装,有可能qcreator没有自动检测到。
但是通过手动设置cmake解决了问题。
2.内容
在 Qt Creator 中,CMake 是重要的构建系统之一,尤其适合跨平台项目和复杂工程。以下是 Qt Creator 中 CMake 配置的核心要点和操作指南:
1. Qt Creator 对 CMake 的支持
- 内置集成
Qt Creator 提供对 CMake 的原生支持,包括:- 自动解析
CMakeLists.txt
文件,显示项目结构(目标、依赖、变量)。 - 支持 CMake 预设(Presets)和自定义构建配置。
- 与代码编辑器集成(如跳转到定义、代码补全)。
- 自动解析
- 版本要求
需确保 CMake 版本 ≥ 3.1(推荐使用最新稳定版,如 3.27+)。
2. 配置 CMake 全局设置
通过 Tools > Options > Kits > CMake 管理全局配置:
- 指定 CMake 路径
添加系统安装的 CMake 可执行文件(如C:\Program Files\CMake\bin\cmake.exe
或/usr/local/bin/cmake
)。 - 配置默认参数
设置全局 CMake 参数(如-DCMAKE_BUILD_TYPE=Debug
),但项目级配置优先级更高。 - 禁用自动生成
取消勾选 “Automatically run CMake after the configuration step” 可手动控制生成时机。
3. 项目级 CMake 配置
a. 创建/导入 CMake 项目
- 新建项目
选择 File > New Project > Import Existing Project > CMake Project,指定源代码目录。 - 导入现有项目
打开含CMakeLists.txt
的目录,Qt Creator 会自动检测为 CMake 项目。
b. 配置构建选项
- 构建套件(Kits)
在项目配置界面(左侧边栏 Projects)选择 Kit,指定编译器、Qt 版本和 CMake 生成器(如Ninja
、Unix Makefiles
)。 - 构建目录
默认位于项目根目录的build-ProjectName-KitName
文件夹,可自定义路径。 - CMake 参数
在 Projects > Build Settings > CMake 中添加参数:-DCMAKE_PREFIX_PATH=/path/to/Qt
:指定 Qt 安装路径(解决Could not find a Qt installation
错误)。-DBUILD_SHARED_LIBS=ON
:构建共享库。-DCMAKE_CXX_STANDARD=17
:设置 C++ 标准。
c. 使用 CMake 预设(Presets)
- 定义预设
在项目根目录创建CMakePresets.json
,定义多套构建配置(如 Debug/Release、不同编译器):{ "version": 3, "configurePresets": [ { "name": "debug", "displayName": "Debug Config", "description": "Debug build with GCC", "binaryDir": "${sourceDir}/build-debug", "generator": "Unix Makefiles", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_PREFIX_PATH": "/opt/Qt/6.5.0/gcc_64" } } ] }
- 在 Qt Creator 中使用
进入 Projects > Build Settings > CMake,选择预设名称(如debug
),参数会自动加载。
4. 高级功能
a. 实时重新配置
- 修改
CMakeLists.txt
后,Qt Creator 会自动检测变更并提示重新生成构建系统。 - 手动触发:点击 Build > Run CMake。
b. 调试 CMake 脚本
- 在
CMakeLists.txt
中设置断点,通过 Build > Debug CMake Script 逐步执行(需启用-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
)。
c. 集成测试
- 使用
enable_testing()
和add_test()
定义测试用例,通过 Build > Run CTest 执行。
5. 常见问题解决
a. “CMake Error: Could not find Qt”
- 确保 CMake 参数中指定了
CMAKE_PREFIX_PATH
(Qt 安装路径,如C:/Qt/6.5.0/mingw_64
)。 - 检查构建套件中的 Qt 版本是否与 CMake 参数一致。
b. 生成器不兼容
- 若报错
Unknown CMake generator "Xcode"
,需安装对应工具链(如 macOS 的 Xcode)或更换生成器(如Ninja
)。
c. 构建目录权限问题
- 避免在系统保护目录(如
C:\Program Files
)下构建,选择用户有写权限的路径。
6. 最佳实践
- 使用 Ninja 生成器
在 Projects > Build Settings > CMake 中选择Ninja
,编译速度比Makefiles
快 30%-50%。 - 分离构建目录
保持源代码目录干净,所有中间文件生成在独立的build/
文件夹。 - 版本锁定
在CMakeLists.txt
顶部添加cmake_minimum_required(VERSION 3.27)
避免版本不兼容。
通过以上配置,Qt Creator 可高效管理 CMake 项目,结合其代码编辑和调试功能,显著提升开发体验。对于复杂项目,建议结合 CMake 预设和持续集成(CI)工具(如 GitHub Actions)实现标准化构建流程。
3.关联链接
问题关联事件:安装完qtcreator 创建的工程报异常,或者qmake正常,cmake无法编译工程
关联问题:
No kits are enabled for this projuect. Enable kits in the “Projects“ mode. 文原因分析-优快云博客
基础知识
Clang 是LLVM(低级虚拟机)项目的一个开源编译器前端-优快云博客
qt 构建套件中 register documentation 的作用-优快云博客