
简介从 Qt Creator 4.12.4 官方源码精简而来的工程包主要面向希望研究大型 Qt 项目结构或进行二次开发的 C 开发者。该版本以核心源码工程为主剔除冗余的辅助模块与多余构建文件整体体积仅 5.21MB便于快速下载和本地编译源码已针对 MSVC2017 编译器做好适配可在 Windows 环境下直接作为参考工程展开学习。资源包虽小但保留了 Qt Creator 基础框架的关键代码路径包含工程组织、插件机制、界面框架等核心目录适合对照官方源码逐层梳理启动流程与模块划分。已有 478 人学习使用对于想要低成本入门 Qt Creator 源码阅读、理解 IDE 软件架构的读者来说是一份相当精炼的起步资料。 qt-creator-minimal.7z这个文件名乍一看平平无奇但懂行的人一眼就能读出里面的潜台词有人不想用官方那一套几百MB甚至上GB的安装流程而是想要一个解压即用、体积可控、拿来就能写代码的Qt Creator。网上关于Qt Creator安装配置的教程不少但真正围绕怎么从官方包瘦身出一个minimal版本的经验分享却很少很多人的做法还停留在装完删掉多余目录的粗糙阶段。我这几年在Windows和Linux下做嵌入式上位机开发Qt Creator换过好几个版本也手工打过好几次精简包。折腾得多了对这个IDE的目录结构、运行依赖、配置文件的脾气基本摸得比较透。这篇文章不打算重复官方文档里已经写清楚的安装步骤而是把我自己拆包、选版本、删冗余、改配置、实测跑通的完整思路拿出来聊一聊。如果你也受够了官方安装包的臃肿想在离线环境、低配机器或者U盘里塞一个随时能跑的Qt开发环境这篇内容应该能帮你省下不少试错时间。1. 为什么不能直接拿官方安装包凑合用先说一个最基本的结论官方Qt Creator安装包本身不难用但它身上的附加物太多了。我最早用的是Qt 5.12时代那个打包了全部组件的离线安装器装完一看磁盘占用五个多G里面光各种版本的Qt库就占了一大半。而我的实际需求很简单写个串口调试工具编译一个x86_64的Windows桌面程序用到的模块只有Qt Widgets、Qt SerialPort、Qt Network这几个。剩下的Qt Charts、Qt Data Visualization、Qt WebEngine、QML那一整套东西装完之后一次都没碰过却在每次更新时老老实实跟着升级。另一个让很多人头疼的点是官方安装器是强制走网络连接的。哪怕你用离线安装包启动安装器的时候它仍然会尝试访问远程服务器验证组件列表在完全没有外网的内网环境里这一步就会被卡住有时候还会出现进度条走到一半卡死的情况。我后来在客户现场遇到过几回这种场景工期又紧总不能现场跟客户说麻烦你开个外网让我装个IDE。从那以后我就开始研究怎么在本地直接攒一个不依赖网络、解压就能跑的Qt Creator。再说说运行体验。官方版默认会往系统里塞不少注册表项、文件关联和PATH环境变量如果机器上有多个版本的Qt安装过Qt Creator的启动器还可能因为路径查找顺序问题加载到旧版本的工具链。精简包的好处在于它是绿色的装在哪、什么时候装、要不要常驻都由我自己控制。团队里几个同事用同一个压缩包解压到同一路径环境完全一致出问题的时候互相复现也容易得多。所以我坚持一个观点如果你只是一个偶尔写点小工具的开发者或者被部署到多台内网机器上做支持花点时间做一个真正意义上的minimal版本比维护一套官方安装环境要划算得多。这个划算不仅体现在磁盘占用上更体现在环境可控性和排障效率上。2. 动手之前先看清Qt Creator装了哪些家底要做一个精简包第一步不是急着删文件而是先搞清楚一个完整的Qt Creator发布目录里哪些东西是运行时必不可少的哪些是可选的。我以Windows平台的Qt Creator 10/11/12系列为例解压后你会发现它的目录结构大致是这样的qt-creator/ ├── bin/ │ ├── qtcreator.exe │ ├── qtcreator.com │ └── ... ├── lib/ │ ├── Qt/lib/ │ ├── qtcreator/ │ │ ├── plugins/ │ │ └── ... ├── libexec/ │ └── ... ├── share/ │ ├── qtcreator/ │ │ ├── templates/ │ │ ├── debugger/ │ │ ├── welcomescreen/ │ │ └── ... └── ...这里面的关键运行时依赖关系是这样的bin/qtcreator.exe是主程序入口它启动时会去找同目录下的qtcreator.ini和qt.conf不过qt.conf通常不在bin目录后面会讲到。lib/qtcreator/plugins/是插件的家Qt Creator本身是一个插件化架构的IDE核心功能、欢迎页、调试器支持、版本控制集成、QML编辑器、C代码模型全都是插件。如果你只保留所有插件启动时它会逐个加载并检查依赖一个插件失败会连带影响其他功能。lib/Qt/lib/这个目录往往是虚胖的重灾区里面塞了Qt Creator自身运行时用的Qt库但不同版本情况差异很大。你需要在精简前确认这一点因为有些版本会把Qt库打进这个目录有些则直接复用系统里已装的Qt。share/qtcreator/存放的是模板、示例项目、欢迎页资源、语言包和帮助文档。语言包这一块我觉得可以降级处理只保留中文和英文剩下几十种语言可以整包删掉。在删除任何东西之前我的建议永远是先做一件事完整启动一次原版Qt Creator确认它能正常工作。然后去帮助-关于和工具-选项-环境里把配置面板挨个打开看一遍知道你现在用到了哪些功能。比如你从来不用Git插件那plugins/Vcs目录下的Git插件就可以删但如果你背后有版本库提交需求这个目录就得留着。这个按需删减的思路比照着体积排行榜去硬删文件要安全得多。另外要特别留意libexec目录。这个目录在Windows版本里不一定存在但在不少非官方构建里它可能存放了一些命令行工具的辅助程序。删之前最好确认一下Qt Creator在打开工程、构建项目时会不会在运行时调用这些文件否则工程一旦构建报找不到xx.exe排查起来非常头疼。3. 目录级瘦身实操清单哪些能删、哪些必须留拿一个普通的Qt Creator 12.x版本为例解压后的完整目录大约在1.2GB到1.5GB之间。我经过几轮删减能把体积压到400MB上下去掉缓存和帮助文档之后甚至可以到300MB出头。这个体量放在U盘里完全没压力。下面是具体的删减策略按推荐顺序来。3.1 bin目录只需要主程序和少量命令行工具bin目录是整个程序的启动入口里面的qtcreator.exe不能删。这个目录里还会有一堆dll文件是Qt Creator运行时要用的核心动态库比如Qt6Core.dll、Qt6Gui.dll、Qt6Widgets.dll这类也不能动。但有些额外的exe是可以根据自己需求删的。比如bin下可能还有qmldom.exe、qmlformat.exe、qmlplugindump.exe之类的QML辅助工具如果你只写传统Widgets界面不碰QML就可以删除。但是要小心Qt Creator的部分插件在加载时会扫描这些工具来做语法检查如果删了有些依赖QML的插件启动时会报错。保险做法是先保留等最后实测阶段发现确实不用再删。3.2 lib/qtcreator/plugins插件的取舍是关键这个目录是最大的优化点。我建议自己先完整看一眼插件清单然后逐个排除。Windows平台下我自己的经验是以下这些插件几乎是必留的Core、ProjectExplorer、QmakeProjectManager、CMakeProjectManager没有它们就打不开工程。CppEditor、CPlusPlusC代码模型和编辑器核心没有它就没有代码提示。QtWidgetsDesigner、QtDesigner如果你依赖拖拽式UI设计。Debugger、DebuggerCommon调试功能基本离不开。Qmake、CMake相关的构建插件。文本编辑器相关的TextEditor。欢迎页和帮助系统的Welcome、Help删掉Help之后按F1就废了看个人取舍。拿掉一些基本可以用点名的方式确定安全的插件比如ClangTools静态分析、ClangCodeModel它和内置的代码模型有功能重叠但不是完全等价、Android、AutotoolsProjectManager、BareMetal、Docker、Ios、McU、McuSupport、RemoteLinux、Valgrind、VxWorks等。这些插件对应的都是各种交叉编译和远程调试场景桌面开发用不上。这里提醒一句插件之间是有依赖加载顺序的不是删掉就立竿见影。因为每个插件都有一个pluginspec文件描述了它依赖哪些其他插件如果你删掉了A插件但B插件的依赖列表里还写着AB加载就会失败。所以删完之后必须在启动日志里看一遍加载结果看是否有Failed to load plugin的提示。3.3 share/qtcreator帮助和模板是两大体积块share目录里最占空间的是帮助文档help目录和完整模板集合。Qt Creator的离线帮助文档经常是几十MB到一百多MB的qch文档可以在工具-选项-帮助-文档里去掉不需要的模块再把对应的qch文件从磁盘删掉。我自己的习惯是只留Qt Core、Qt Widgets和Qt SerialPort的qch其他模块的帮助文档全部清空。这样在编辑器里按F1查资料时重点依然覆盖但体积能立刻瘦下来。模板目录里自带的那些示例工程模板有一部分只是项目骨架有些则是完整的示例代码。如果光盘上空间真的紧张可以把整个templates里不需要的部分删掉但保留Qt Widgets Application这类高频模板是个好习惯。welcomescreen目录里是欢迎页的远程内容缓存删掉之后欢迎页会干净不少也不影响主流程。3.4 其他目录检查剩下几个目录比如share/qtcreator/qmldesigner之类的资源目录建议先保留。这些资源和编辑器渲染有关删了可能不会报错但会出现UI显示异常得不偿失。translations目录里的语言包我一般只留qtcreator_zh_CN.qm和qtcreator_en.qm其他语言全部删掉这一项能省掉几十MB。做完这一步Qt Creator的骨架基本就清晰了。此时你可以先不解压直接在原目录上复制一份做测试免得删错了还得重新解压。4. 让精简版站起来路径配置与便携化改造文件删到差不多的程度剩下的事情其实是路径配置。Qt Creator携带了很多硬编码的路径检查如果直接双击qtcreator.exe它默认会到系统安装目录或者当前目录查找工具链和Qt库这恰恰是很多人精简后启动失败的根本原因。4.1 使用qt.conf固定目录关系要在任何路径下都能跑关键是给qtcreator.exe准备一个qt.conf文件。把它放在和qtcreator.exe同一个bin目录下注意不是根目录内容通常长这样[Paths] Prefix.. Documentation../share/doc/qt Headers../include Libraries../lib Plugins../lib/qtcreator/plugins Imports../lib/qml Qml2Imports../lib/qml Data../share/qtcreator Translations../share/qtcreator/translations Settings../share/qtcreator这个文件的作用是告诉程序所有依赖的相对位置都在我上一级目录里的哪些子目录。写完之后无论整个目录放到C盘、D盘还是U盘只要能保持内部相对结构不变Qt Creator就能正常启动。这是便携化最关键的一步也是网上很多minimal压缩包作者没讲清楚的地方。4.2 处理编译器路径和Qt工具链在Qt Creator里配置编译器时它记住的是绝对路径。一旦你把目录挪了位置原来配置好的MinGW/ MSVC 路径就失效了。两个思路可以解决这个问题固定整个minimal包的解压根目录比如统一定在C:\QtMin\这种固定位置。这样配置一次以后每台机器都解压到同一个路径。固定路径这个方案最简单粗暴适合团队内统一要求。如果确实需要便携移动比如放在U盘里接不同电脑用那就得每次到新机器后用工具-选项-Kits-编译器重新添加一次编译器路径。对于只有一两台目标机的场景这个成本也可以接受。4.3 外部Qt库的处理这里要区分一下Qt Creator把程序结构搭好了但它本身不带有编译用的Qt库。你可能已经安装了Qt库也可能还没有。minimal压缩包里是只放IDE还是连一个可用的Qt库一起打进去这是个关键选择。我自己的做法是只做IDE的minimal包Qt库另备一份MinGW预编译版本放在同级目录里比如C:\QtMin\Qt\6.5.3\mingw_64。在Kits配置里把Qt版本和编译器指过去即可。这样做的优势是IDE升级了不用动Qt库Qt库有问题也不影响IDE本体。但新手如果不太熟悉Kits配置可能会被绕晕。所以我建议刚上手时把Qt库也解压到同一个根目录下先跑通一个最小工程再琢磨后续的分离维护。5. 实测验证与最常见的三个翻车点精简包做完了启动也启动了但真正的问题往往藏在看起来能用和实际能用之间。我按自己的排查经验把这几个最容易翻车的点整理出来。5.1 插件加载失败日志是最诚实的朋友精简插件之后第一次启动如果Qt Creator界面缺按钮、菜单不完整或者某个功能直接报错先别急着把删掉的文件恢复回去。Qt Creator有详细的启动日志路径一般在%APPDATA%\QtProject\qtcreator.log打开日志看到类似Failed to load plugin ClangTools ...这样的记录基本可以确定是插件依赖链断了。日志里会写明它缺的是哪个依赖插件这时候二选一要么在plugins目录里把缺失的依赖补回来要么把这个插件本身也删掉。反复几次之后最后活下来的插件集合就是你这个使用习惯下的最小插件集。5.2 MinGW套件路径问题报错里藏的线索最多用MinGW写过Qt程序的人一定见过这套老熟人报错Cannot find mingw32-make Cannot find file: .../mingw/bin/g.exe出现这种情况基本可以断定Qt Creator配置的编译器路径和你实际解压的MinGW目录对不上。在Kits设置里重新定位到mingw/bin目录再重建一次构建套件就能解决。还有一个细节是新版Qt Creator如果找不到make工具它会自己去PATH里找如果系统PATH里碰巧有个老版本的mingw32-make那它就会用老的结果就是编译时引入一堆奇怪的宏定义。所以路径配完之后最好检查一下系统的PATH里有没有可能干扰的MinGW目录有的话尽早清掉。5.3 工程的构建目录路径别让旧配置卡住新环境有时候Qt Creator能正常启动、插件也加载了但一打开之前的老工程就崩溃或者构建失败。这类问题大多是工程设置里包含了对旧路径的引用。比如工程文件里的shadow build目录指定到了原来完整安装的路径下构建时找不到中间文件。比较省事的方法是直接把工程重开一次让它重新生成CMakeCache.txt之类的缓存文件。如果是qmake工程把.pro.user文件删掉再重新打开工程让它按新环境重新生成一次用户级配置。我在多次搬移环境的过程里总结了一个小习惯凡是换机器、换目录之后第一次打开工程都先去工具-选项-Build Run里把临时目录和构建目录改成统一路径。这样即便工程缓存出问题也能快速找到出错的中间产物而不是在层层嵌套的目录里翻得头大。5.4 一个冷门但必须提的Windows Defender性能损耗精简后的Qt Creator首次启动时Windows Defender或者其他杀毒软件会对目录里所有dll做实时扫描目录里的文件越多首次启动越慢。我实测过一个600MB的完整版在机械硬盘上首次启动可能要十几秒而精简到300MB的版本在同样条件下几乎能做到5秒内启动。如果你的目标机器配置不高这个差异体感还挺明显的。所以精简掉不必要的dll和插件不仅省空间还能实打实地提升启动体验。6. 从缩身体积到理解构建系统这套思路还能怎么用6.1 用Qt Creator解析失败的输出反向定位问题在打磨minimal版本的过程里你其实会强迫自己去了解Qt Creator每个插件和工具链的职责。这种知识在日后排查构建问题、写自定义构建步骤时特别有用。比如我们经常遇到的Unknown module(s) in QT: serialport这种报错说明工程文件里的QT serialport模块找不到对应的库文件。如果你在精简时不小心把Qt SerialPort模块的相关字段给删掉了或者压根没装这个模块就会触发这个报错。懂得模块和库之间的对应关系比对着搜索引擎抄回答要高效得多。6.2 让minimal包成为团队分发与CI/CD的基础镜像最后说一个更偏应用的思路如果你所在的团队常年维护多个上位机项目内部的CI流水线需要一台干净、可靠的编译环境那你手上这个minimal包的价值就不止是绿色版IDE而已了。你可以基于同样一套目录结构做一份不含界面语言包、不含帮助文档的编译专用镜像包每次CI构建前解压到固定agent机器上构建完成自动打包产物。这样既避免了每台构建机都装一遍完整IDE的资源浪费也让构建环境具备可复现性。我这边的做法是在公司内部的工件仓库里存了两个压缩包一个是qt-creator-minimal.7z给人工开发用另一个是qt-libs-mingw-6.5.3.7z纯Qt库给CI用。两者解压到同一根目录下路径固定构建脚本里写死引用相对路径基本做到开箱即用。后续升级Qt库时只需要替换第二个压缩包并跑一遍回归构建不必动IDE环境。这半年里我给三个现场客户分别拷过去这套环境最短的一次部署只花了十分钟解压两个压缩包、改一次qt.conf、添加一次编译器路径收工。比起之前带着安装包上门、折腾半个多小时还提心吊胆怕缺组件的经历效率提升是很直观的。建议想尝试的人先从自己最常用的功能列一个刚需插件清单再按这个思路逐步精简第一版不用追求极限体积跑通流程比什么都重要。本文还有配套的精品资源点击获取