C++ Qt开发环境怎么搭 C++ Qt Creator安装与配置教程【框架】

发布时间 - 2026-01-31 00:00:00    点击率:
Qt Creator安装需手动勾选编译器、Qt版本及工具链组件,正确配置Kit(编译器+Qt版本+调试器),确保勾选Qt Widgets等必要模块,项目路径须为纯英文,windeployqt依赖环境纯净。

Qt Creator 安装时选错组件会导致 qmake 找不到或 mingw/msvc 工具链不完整

安装 Qt 时不能只点「Next」一路到底。默认勾选的组件往往只含基础模块,缺少编译器支持和调试工具。Qt Creator 本身是 IDE,但真正编译项目靠的是外部工具链(如 MinGWMSVC),而这些必须在 Qt Online Installer 中显式勾选。

实操建议:

  • 下载官方 Qt Online Installer(不是离线版,它更新及时且组件可选)
  • 安装过程中展开 Qt 版本节点,务必勾选对应平台的预编译套件,例如:Desktop gcc 64-bit(Linux/macOS)、MinGW 11.2 64-bit(Windows)、MSVC2019 64-bit(需先装 Visual Studio)
  • 同时勾选 Qt Creator(最新稳定版即可,不必用预览版)和 Developer and Designer Tools(含 Qt Designerqmakewindeployqt 等)
  • 安装路径避免中文、空格、长路径(如 C:\Qt 最稳妥)

启动 Qt Creator 后提示 “No valid kits found” 是 Kit 配置没对上

Kit 是 Qt Creator 里把编译器、Qt 版本、调试器三者绑定的抽象配置。即使装了 MinGW 和 Qt,若 Kit 未识别或手动配错,新建项目会直接失败。

常见错误现象:

  • Kit 列表为空,或显示 Unconfigured
  • 选择 Kit 后构建按钮灰色,或报错 Could not determine which CMake generator to use(误用了 CMake 模板却没配 CMake 工具)
  • 运行时提示 The program has unexpectedly finished,其实是调试器没连上

实操建议:

  • Tools → Options → Kits,检查 Compilers 标签页是否识别出已安装的 g++(MinGW)或 cl.exe(MSVC);没识别就手动添加路径,如 C:\Qt\Tools\mingw112_64\bin\g++.exe
  • Qt Versions 标签页确认 qmake 路径正确,比如 C:\Qt\6.5.3\mingw_64\bin\qmake.exe;若为空,点击「Add」并定位到对应 bin 目录下的 qmake.exe
  • 回到 Kits 标签页,新建或编辑一个 Kit:名称自定,Compiler 选刚配好的,Qt version 选刚加的,Debugger 若 Windows 下用 MinGW 就选 gdb(路径一般在同级 mingw112_64\bin\gdb.exe

新建项目后 qmake 报错 “Project ERROR: Unknown module(s) in QT: widgets”

这是 .pro 文件里写了 QT += widgets,但当前 Qt 版本没编译 widgets 模块——常见于安装时漏选 Qt Widgets

组件,或误用了 Qt for WebAssembly 等精简版。

使用场景:

  • QMainWindowQPushButton 等传统桌面控件时必须有 widgets 模块
  • Qt 6 默认拆分模块,coregui 是基础,widgets 是独立可选模块

实操建议:

  • 检查安装时是否勾选了 Qt Widgets(在 Qt 版本节点下,和 CoreGui 并列);没勾选就重装或用 MaintenanceTool 补装
  • 确认 .pro 文件中 QT += core gui widgets 写全,Qt 6 不再默认包含 widgets
  • 如果用的是 Qt 6.5+ 的 cmake 项目模板,别混用 qmake 语法;此时应删掉 .pro,改用 CMakeLists.txt 声明 find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)

中文路径或环境变量冲突会让 windeployqt 失效或生成空白 release 目录

windeployqt 是发布 Windows 应用的关键工具,但它极度依赖路径干净、编码一致、权限正常。一旦项目路径含中文、空格,或系统 PATH 里混入旧版 Qt 工具,就可能静默失败。

性能与兼容性影响:

  • 路径含中文 → windeployqt 解析 .dll 依赖时报 Invalid argument,不报错但不拷贝任何文件
  • PATH 中存在多个 qmakewindeployqt → 实际调用版本错乱,Qt 6 项目用 Qt 5 的 windeployqt 会漏拷 Qt6Widgets.dll
  • 以普通用户权限运行 Qt Creator → 无法写入 Program Files 类路径,导致部署中断

实操建议:

  • 项目根目录用纯英文短路径,如 D:\dev\myapp,避开 OneDrive、桌面等同步目录
  • 构建前,在 Qt Creator 的 Projects → Build Settings → Build Environment 中点击「Details」→「Clean»,再手动删掉所有 Qt 相关条目,仅保留系统必要 PATH
  • 发布时右键项目 → Deploy Project,或命令行进入 build-xxx-Desktop_Qt_6_5_3_MinGW_64_bit-Release\release 目录,运行:
    ..\..\Qt\6.5.3\mingw_64\bin\windeployqt.exe --no-translations --no-opengl-sw myapp.exe
Qt 开发环境最麻烦的从来不是装多少东西,而是每个环节都得对齐:安装组件、Kit 配置、模块引用、路径规范,缺一不可。尤其是 windeployqt 这类后期工具,问题常在发布阶段才暴露,但根子早在创建第一个 Kit 时就埋下了。


# linux  # windows  # 编码  # app  # 工具  # mac  # ai  # c++  # macos  # 环境变量  # win  # 开发环境  # cos  # qt  # for  # Error  # ide  # visual studio  # onedrive  # 勾选  # 的是  # 报错  # 英文  # 可选  # 调试器  # 这是  # 离线  # 新建项目  # 第一个 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  ,在苏州找工作,上哪个网站比较好?  如何在景安服务器上快速搭建个人网站?  JavaScript如何实现错误处理_try...catch如何捕获异常?  java获取注册ip实例  如何用狗爹虚拟主机快速搭建网站?  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  如何挑选优质建站一级代理提升网站排名?  非常酷的网站设计制作软件,酷培ai教育官方网站?  网站优化排名时,需要考虑哪些问题呢?  Java遍历集合的三种方式  Internet Explorer官网直接进入 IE浏览器在线体验版网址  历史网站制作软件,华为如何找回被删除的网站?  如何获取上海专业网站定制建站电话?  java中使用zxing批量生成二维码立牌  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  网站制作价目表怎么做,珍爱网婚介费用多少?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  音响网站制作视频教程,隆霸音响官方网站?  北京网站制作的公司有哪些,北京白云观官方网站?  什么是javascript作用域_全局和局部作用域有什么区别?  javascript中的try catch异常捕获机制用法分析  轻松掌握MySQL函数中的last_insert_id()  C++时间戳转换成日期时间的步骤和示例代码  如何在Windows服务器上快速搭建网站?  LinuxShell函数封装方法_脚本复用设计思路【教程】  在线制作视频网站免费,都有哪些好的动漫网站?  如何注册花生壳免费域名并搭建个人网站?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  如何在IIS7中新建站点?详细步骤解析  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何在IIS中新建站点并解决端口绑定冲突?  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  在Oracle关闭情况下如何修改spfile的参数  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何在宝塔面板中修改默认建站目录?  Android自定义控件实现温度旋转按钮效果  如何用VPS主机快速搭建个人网站?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  长沙企业网站制作哪家好,长沙水业集团官方网站?  网站页面设计需要考虑到这些问题  js实现点击每个li节点,都弹出其文本值及修改  高端建站如何打造兼具美学与转化的品牌官网?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  如何为不同团队 ID 动态生成多个非值班状态按钮  三星、SK海力士获美批准:可向中国出口芯片制造设备  如何快速搭建FTP站点实现文件共享?  网站制作壁纸教程视频,电脑壁纸网站?