讲师中心 微信公众号
AI工具推荐 视频效率加速

CMake怎么配置Qt项目?

阿雪同学_4911

阿雪同学_4911

发布时间:2026-08-07 16:28:26

|

942人浏览过

|

来源于php中文网

原创

CMake配置Qt项目的核心是让find_package找到Qt的Config.cmake文件;需将CMAKE_PREFIX_PATH设为Qt安装路径下含lib/cmake的父目录,而非子目录,并按Qt5/Qt6版本严格使用对应目标名和函数。

cmake怎么配置qt项目?

CMake 配置 Qt 项目的核心不是写一堆命令,而是让 find_package 找到 Qt 的 Qt5Config.cmake 或 Qt6Config.cmake —— 找不到,后面全白搭。

为什么 find_package(Qt5 REQUIRED) 总报错?

常见错误是:Could not find a package configuration file provided by "Qt5"。根本原因不是 Qt 没装,而是 CMake 根本没去对地方找。

  • Qt 安装后,真正的配置文件(如 Qt5Config.cmake)在 <Qt安装路径>/lib/cmake/Qt5/ 或 <Qt安装路径>/lib/cmake/Qt5Widgets/ 下,不是根目录
  • CMAKE_PREFIX_PATH 必须指向包含 lib/cmake/ 的父目录,比如 C:/Qt/5.15.2/msvc2019_64,而不是 C:/Qt/5.15.2/msvc2019_64/lib/cmake
  • 如果用了多个 Qt 版本,别往系统 PATH 里加 Qt 的 bin;用 CMAKE_PREFIX_PATH 显式指定,避免和 Qt5_DIR 缓存冲突
  • Qt6 用户注意:find_package(Qt6 REQUIRED COMPONENTS Widgets) 是标准写法,Qt5::Widgets 这种写法在 Qt6 中不推荐(应改用 Qt6::Widgets)

CMAKE_AUTOMOC / AUTOUIC 开关到底要不要开?

开了能省事,但开了也容易掩盖头文件依赖问题。真实项目中建议开,但得知道它干了什么。

C++ Code Review Master
C++ Code Review Master

组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,适用于PR审查、增量代码审查、全项目评审和代码质量评分,触发词包括review cpp、cpp代码评审、C++review、代码审查。

下载
  • set(CMAKE_AUTOMOC ON):自动对含 Q_OBJECT 的 .h 文件调用 moc,不用手动列 moc_*.cpp 到源文件里
  • set(CMAKE_AUTOUIC ON):自动把 .ui 转成 ui_*.h,但要求 .ui 文件必须出现在 add_executable() 的源文件列表中,否则不触发
  • set(CMAKE_AUTORCC ON):同理,.qrc 文件也得显式列进 add_executable(),否则资源不打包
  • Qt6 中这些开关默认为 ON(只要用了 qt_add_executable),但 Qt5 仍需手动设

Windows 上 GUI 程序黑窗口怎么消失?

不是代码问题,是链接器设置。控制台窗口出现,说明入口点还是 main,而 GUI 应该用 WinMain。

  • Qt5 项目:加 set(CMAKE_WIN32_EXECUTABLE ON) 即可,CMake 会自动加 /SUBSYSTEM:WINDOWS 和替换入口点
  • Qt6 项目:用 qt_add_executable(... WIN32) 替代 add_executable(),这是 Qt6 官方推荐方式
  • 如果用了 set(CMAKE_WIN32_EXECUTABLE ON) 却仍弹黑窗,检查是否漏了 target_link_libraries(... Qt5::WinMain)(Qt5)或 Qt6::WinMain(Qt6)
  • VS 用户注意:CMakePresets.json 里若没设 "configuration": "Debug" 或 "configuration": "Release",VS 可能默认走控制台构建逻辑

最常被忽略的其实是 Qt 版本与 CMakeLists.txt 的耦合点:Qt5 要求 find_package(Qt5 ...) + Qt5::* 目标名,Qt6 要求 find_package(Qt6 ...) + Qt6::*,混用会导致链接失败且错误信息极不直观。别图省事写成 Qt::Widgets 就以为能通用——只有在同时适配 Qt5/Qt6 的复杂项目里才值得引入这种抽象,日常开发请严格按实际版本写死。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

相关专题

更多
C++ Qt图形开发
C++ Qt图形开发

本专题专注于 C++ Qt框架在图形界面开发中的应用,系统讲解窗口设计、信号与槽机制、界面布局、事件处理、数据库连接与跨平台打包等核心技能,通过多个桌面应用项目实战,帮助学员快速掌握 Qt 框架并独立完成跨平台GUI软件的开发。

4362

2025.08.15

C++桌面程序开发
C++桌面程序开发

本专题聚焦 C++ 在桌面端图形界面应用开发中的实战应用,系统讲解 Qt 框架的信号与槽机制、界面布局管理、事件响应、数据交互、样式美化与多窗口应用设计等核心知识。通过实战案例(如记事本应用、数据管理工具、系统监控面板),帮助学习者掌握 从UI设计到完整桌面软件开发的C++工程化能力。

1234

2025.10.23

C++ 图形界面开发基础(Qt方向)
C++ 图形界面开发基础(Qt方向)

本专题系统讲解 使用 C++ 与 Qt 进行图形界面(GUI)开发的核心技能,内容涵盖 Qt 项目结构、窗口组件、信号与槽机制、事件处理、布局管理、资源管理,以及跨平台编译与打包流程。通过多个小型桌面应用实战案例,帮助学习者掌握从界面设计到功能实现的完整 GUI 开发能力。

1421

2025.12.05

C++ 跨平台开发
C++ 跨平台开发

本专题聚焦 C++ 在跨平台应用与工程构建中的实战应用,系统讲解 CMake 构建系统、跨平台编译配置、第三方库集成、调试技巧、静态与动态链接库管理等核心知识。通过实战案例(如跨平台工具开发、Linux与Windows编译兼容性项目),帮助学习者掌握 从环境配置到完整跨平台构建的开发能力。

6106

2025.10.17

c++  cmake用法
c++ cmake用法

本专题整合了c++ cmake用法相关教程,阅读专题下面的文章了解更多详细内容。

1511

2025.10.23

C++ 编译构建系统与CMake实战
C++ 编译构建系统与CMake实战

本专题聚焦 C++ 项目的编译与构建体系,系统讲解 CMake 的核心语法、项目结构设计、库与依赖管理、跨平台构建、调试与发布配置。通过完整项目示例,帮助开发者掌握 从源码到可执行程序的工程化构建流程,提升 C++ 项目在实际开发中的可维护性与扩展性。

354

2025.12.13

C++运算符基础入门
C++运算符基础入门

本专题详细讲解了C++运算符的类型、语法与使用方法,涵盖算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符及其他特殊运算符,并通过代码示例解析优先级与结合性。

0

2026.10.09

PixPix官网入口合集
PixPix官网入口合集

本专题汇总了PixPix官网在线使用入口及平台功能详解,涵盖文生图、图生图、AI图片编辑、AI视频创作等核心能力,并整理了AI爆款图片复刻、商品套图、详情页生成、视频变清晰与去水印等电商专项工具的使用教程。同时收录了PixPix MCP接入Codex、Claude Code等主流Agent的操作指南,助您一站式完成AI图片与视频创作。

0

2026.10.09

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

60

2026.10.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
LLVM CMake构建指南
LLVM CMake构建指南

共0课时 | 0人学习

LLVM入门手册
LLVM入门手册

共0课时 | 0人学习

CMake 与 Conan 集成实践
CMake 与 Conan 集成实践

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn