资讯详情

资讯详情

Qt 5.14.2 离线安装包全流程:断网环境下组件选择与避坑指南

公司新到一批内网开发机或者实验室、机房直接物理断网这时候要装 Qt第一反应是打开官网下载在线安装器结果双击之后卡在“检查网络环境”半天不动。这类场景我遇到过不止一次后来干脆总结出一套 QT5.14.2 离线安装包的固定流程。本文要写的不是那种“下载文件、下一步下一步”的假教程而是从为什么选 5.14.2到组件面板里每一项到底勾不勾再到装到一半卡死、装完编译器套件失踪这一系列问题怎么解决全给你捋清楚。如果你也是要在完全断网的 Windows 机器上部署 Qt 开发环境这篇文章应该能帮你省下一整天的折腾时间。我尽量把你当成坐在旁边的同事把那些安装器不会告诉你的细节都讲透。1. 先把版本的事说清楚为什么偏偏是 5.14.21.1 离线包与在线包的差别Qt 官方这些年把下载策略改得比较激进。新版本在主推在线安装器也就是那个qt-online-installer-windows-x64-*.exe体积很小运行后按需拉取组件。但问题就出在这个“按需”上你在一台完全没有外网的机器上双击它它一步都走不动连许可协议页面都要先联网下载。而 Qt 5.14.2 发布的那个年代官方还提供完整的离线安装包一个 exe 把 Qt 库、工具链、Qt Creator 统统打进去装的时候不需要下载任何东西。这才是断网环境能用的关键。我一开始也试过在联网机器上用在线安装器下载完组件后再拷贝目录结果零散文件太多依赖关系容易断不如直接找离线包省心。1.2 5.14.2 在开源许可与旧系统兼容上的特殊位置很多老开发者到今天还守着 5.14.2不是没有理由的。从 Qt 5.15 开始开源版本不再提供离线安装包想要离线部署要么用在线安装器要么自己从源码编译——后者对普通开发团队来说成本和门槛都偏高。5.14.2 算是 Qt 5 时代组件最完整的离线包之一同时它对 Windows 7 的兼容性很好。如果你所在的公司还有一批 Win7 工控机、测试机5.14.2 基本是省事的选择。它对应的 Qt Creator 版本是 4.11.1二者官方配套问题最少。我在内网一台 Win10 老机器和一台 Win7 工控机上分别验证过都能跑起来。这里有个容易忽略的点Qt 的许可模式分为商业版和开源版。个人学习、内部工具开发用开源版GPL/LGPL就够了它是免费的。安装时许可证选择页一定要看清楚别在联网机器上看到“商用授权”就以为必须付费。注意5.14.2 是 64 位安装包如果你的机器还是 32 位系统请找专门的 32 位离线包。2020 年之后的多数开发机都是 64 位版本别下错。2. 在联网机器上把离线安装包准备好2.1 官方渠道与镜像站怎么选在断网机器上操作之前所有“准备工作”都得在一台能上网的电脑上完成。离线安装包的文件名通常是qt-opensource-windows-x86-64-5.14.2.exe大小接近 3.2GB这是一个大文件下载时注意磁盘空间。获取渠道有两个主流选择。一是 Qt 官网的 archive 目录路径类似download.qt.io/archive/qt/5.14/5.14.2/里面可以看到所有官方安装包。另一个是高校镜像站比如清华 TUNA、中科大镜像这类镜像会同步 Qt 的历史版本服务器在国内下载速度快很多。我在公司带宽一般的情况下从镜像站拉包比官网快一倍不止。下载之后别急着拷贝先做两件事检查体积是否完整记录 SHA256 哈希。3GB 级别的文件在网络传输中确实可能损坏尤其是从 U 盘或者内网邮箱中间转一次的情况下坏包的概率会比想象中高。2.2 哈希校验一个动作避免装到一半报错Windows 下校验哈希用 PowerShell 一条命令就行Get-FileHash .\qt-opensource-windows-x86-64-5.14.2.exe -Algorithm SHA256把输出的哈希值和官网或镜像站提供的 SHA256 比对。如果一致说明文件完整不一致大概率是下载中途出了问题建议重新下载。这个习惯我在吃过一次亏之后养成了。以前图省事跳过校验直接拿 U 盘去机房结果安装器解压到 70% 的时候报Archive is corrupt白跑一趟还得回办公室重新下载。2.3 传到断网机器的三种方式把安装包送到断网机器常见路径无非三种U 盘或移动硬盘最直接。但注意 FAT32 格式不支持超过 4GB 的单文件而 3.2GB 刚好卡在边界附近稳妥起见建议格式化为 exFAT 或 NTFS。局域网共享在联网机器上开一个共享文件夹断网机器通过内网 IP 访问。适合两边都在同一局域网、且网络策略允许文件共享的环境。内网邮件或网盘适合文件不超过附件限制的情况但 3GB 的包往往超限实际用得少。文件到了断网机器后我建议先放在一个路径简单的目录下比如D:\installs\。别直接丢在桌面或“下载”文件夹因为有些安装器在长路径、中文路径下会出幺蛾子后面我们还会聊到路径问题。注意安装包本身是普通 exeWindows 对从网络获得的文件有时会打上“安全警告”标记。如果双击没有反应右键属性在“常规”页签底部勾选“解除锁定”。内网机器上这个标记偶尔会出现别以为是包坏了。3. 断网机器上的安装前检查3.1 系统运行库和补丁最容易忽略的第一道坎很多人把 Qt 安装包拷进断网机器双击后看到安装界面正常弹出就觉得万事大吉结果装到一半告诉你缺少api-ms-win-crt-runtime-l1-1-0.dll之类的东西。这个问题的根源在于 Qt 的安装器依赖 VC 运行库。新版 Windows 10/11 基本自带但 Win7 老机器经常缺这个。解决办法是在联网机器上提前下载 VC 2015-2019 运行库的离线安装包vc_redist.x64.exe一并带进断网机器装好。同样需要的还有 .NET Framework如果系统版本比较老建议提前装 4.7.2 或 4.8 的离线包。Win7 还有一个特殊问题某些精简版系统缺少 SHA-2 签名支持补丁导致安装器在启动时因为没有可信签名而被系统拒绝。如果你确定下载的包哈希没问题但双击就报“损坏”或“非有效的 Win32 应用程序”先去把系统更新补丁打全尤其是 KB4474419 等 SHA-2 补丁。3.2 磁盘空间、路径、权限的硬性要求离线安装包 3.2GB解压和安装过程还需要额外的临时空间所以装之前我习惯确认目标盘剩余空间至少 15GB。如果你在组件面板里把能勾的都勾上最终安装目录可能超过 10GB临时文件还会再占一波空间不够就不是报“磁盘不足”这么温柔了更多时候是毫无征兆地卡住。安装路径这一点我要反复强调不要用带空格和中文的路径。Qt 官方默认安装到C:\Qt这个默认值不是随便定的。MinGW 工具链、qmake、NMake 等工具对路径空格很敏感放在C:\Program Files\Qt下面虽然大部分情况能跑但在某些构建场景下会出现“找不到编译器”或“unknow error”的诡异问题。我自己的习惯是统一装到D:\Qt或C:\Qt路径里只有字母、数字和反斜杠。权限方面给安装器提供管理员权限运行。右键“以管理员身份运行”能避免因为 UAC 权限不足导致安装器无法写入系统级目录或注册表。3.3 杀毒软件要不要关这个问题很多人问。我的建议不是让你关掉系统防御而是在安装前把 Qt 安装目录加入白名单或者暂时关闭实时防护装完再打开。原因在于 Qt 自带的编译器工具链尤其是 MinGW 里的 g、gcc以及一些构建辅助工具偶尔会被杀毒软件误判为“风险工具”。我在一台公司统一部署的机器上遇到过实况安装过程一切正常装完后编译示例程序提示找不到g.exe最后发现是被安全软件隔离了。如果你装的是 MSVC 套件这个风险小一些如果勾了 MinGW务必留意。加入白名单的方法很简单把C:\Qt或你的安装目录加进“排除项”即可。4. 组件选择决策表照着勾就行4.1 编译器套件MinGW 还是 MSVC组件选择是整个离线安装里最考验经验的环节。初学者最容易犯的错误是“全选”装出来一堆用不上的组件白白占了几 GB 空间还拖慢安装速度。第一步是确定自己要用哪套编译器这决定了你勾选 Qt 组件下的哪个分支。MinGW开源工具链安装包里直接带编译器断网环境下最省事。你不需要额外装 Visual Studio勾选后就能编译。适合中小型桌面工具、图形界面程序。MSVC微软的 C 编译器通常和 Visual Studio 配合使用。如果你要用 Windows 平台原生的调试器CDB、或者必须接入某些 Windows SDK 功能选 MSVC。但前提是断网机器上已经装好了对应版本的 Visual Studio否则组件装完也编不了。5.14.2 离线包里面MinGW 对应的是 7.3.0MSVC 对应 2015 和 2017 两个版本。我在内网机器上主力用的是MinGW 7.3.0 64-bit理由很简单不依赖 Visual Studio 那一大坨环境装完就能跑省心。4.2 组件面板逐项拆解组件选择界面是一个树形结构最顶层是Qt 5.14.2下面默认带了一堆子模块。列个表直接说明免得你在树状图里迷路组件作用建议MinGW 7.3.0 64-bit64 位开发套件推荐勾选开箱即用MinGW 7.3.0 32-bit32 位开发套件按需老库兼容才需要MSVC 2017 64-bit配合 VS2017 使用若用 VS 开发则必选MSVC 2015 64-bit配合 VS2015 使用一般不推荐除非历史项目UWP x64/x86/armv7Windows 商店应用不做 UWP 开发别选SourcesQt 源码包需要阅读源码/调试时勾Qt Charts图表控件做数据可视化界面时勾Qt Data Visualization三维数据可视化按需Qt WebEngine内置 Chromium 浏览器内核体积大慎重Qt Network AuthOAuth 认证用到再加Qt Virtual Keyboard虚拟键盘工控触屏场景按需这里重点说几个坑。Qt WebEngine是一个非常庞大的组件安装时间最长体积也很大。如果你的程序不涉及内嵌网页、在线地图、HTML 报表完全可以不勾。很多初学者看到“WebEngine”以为和 Web 开发有关顺手勾上结果安装时间翻倍而且它首次运行还会在断网机器上做一堆初始化容易给人一种“装坏了”的错觉。Sources组件不是必须的但如果你以后要调试 Qt 库内部实现或者想查某个函数为什么行为异常源码在手会方便很多。代价只是多占一些磁盘空间安装时多花几分钟。我自己的机器上勾了 Sources因为解编译错误时能直接跳转到 Qt 源码效率提升明显。4.3 底部工具链组件怎么勾在组件树的下层还有一个Developer and Designer Tools分类包含 Qt Creator、MinGW 编译器、Perl、Python、Ninja 等。这里需要区分Qt Creator必勾IDE 就靠它。MinGW 7.3.0必勾前提是你选了 MinGW 套件。Strawberry Perl只有从源码编译部分 Qt 模块时才需要常规开发不勾。Python 3.7部分构建脚本和工具链需要如果你不搞 QML 扩展的深度定制可以留到以后再说。Ninja配合 CMake 使用的构建工具如果你打算用 CMake 而不是 qmake建议勾上。Git for Windows断网环境下用处有限装了也不影响但不勾也完全没问题。我的习惯是Qt Creator MinGW 7.3.0 Ninja其他默认不勾。后面发现缺什么再补装要比一开始贪多更稳。5. 断网安装全程实录与日志解读5.1 安装步骤与关键界面准备工作做完正式安装的流程反而很简单。我把每一步按顺序写出来照着走基本不会出错。右键qt-opensource-windows-x86-64-5.14.2.exe选择“以管理员身份运行”。欢迎页直接下一步。设置安装路径我建议D:\Qt。输入框下面有“自定义安装”和“精简安装”默认点自定义方便后面选择组件。组件树展开按上一节的决策表勾选。这里你会看到Qt 5.14.2分支展开后列出所有模块勾选只保留需要的。许可协议页面选择Open Source开源版下拉到最底部接受 LGPL/GPL 条款。此时安装器可能会提示“登录 Qt 账号”。断网状态下这个界面可能会卡住解决办法是直接点“跳过”或“Skip”不影响安装。确认配置点击安装。此时安装器开始解压并复制文件期间会显示进度条和当前组件名。安装结束后勾选“运行 Qt Creator”验证 IDE 能否正常启动。这里有一个体验上的细节安装进度条并不总是均匀前进的。有时候看着 30% 卡了十分钟别慌可能正在解压 WebEngine 这种大模块。区分“真卡死”和“正常等待”的方法是看任务管理器里安装进程是否还在读写磁盘。如果在持续读盘或 CPU 占用不低就等着如果十分钟过去磁盘和 CPU 都完全没有活动再考虑结束进程重来。5.2 安装日志怎么看安装器写日志的位置通常在安装目录下的installLogs文件夹或者当前用户的临时目录。Windows 下也可以直接看%TEMP%下以qt开头的日志文件。日志文件里每一行会记录安装的组件名、目标路径、操作时间。如果安装失败日志末尾会给出具体的失败原因最常见的几种是Error extracting files文件解压失败多半是安装包损坏重新拷贝一份再试。Error writing file to ...写入失败检查目标盘空间、目录权限或者杀毒软件是否拦截。Component ... is empty某个组件没有拉取到内容常见于离线包被截断或改名。看懂日志比盲目重装一遍高效得多。5.3 安装后的目录结构装完别急着关窗口先看一眼目录结构确认关键文件都在。以D:\Qt为例你应该能看到D:\Qt\ 5.14.2\ mingw73_64\ bin\ include\ lib\ mkspecs\ ...其他勾选的组件目录 Tools\ mingw730_64\ bin\ QtCreator\ bin\5.14.2\mingw73_64是 Qt 库的根目录bin下有 qmake.exe、windeployqt.exe 这些关键工具Tools\mingw730_64\bin是 MinGW 编译器所在目录。Qt Creator 在Tools\QtCreator下。如果这些目录都齐了说明安装本体没毛病接下来就是最后的环境验证环节。6. 避坑全记录最常翻车的 4 个环节6.1 安装进度条长期卡住不动这是断网安装最常见的“假死”现象。我遇到过两次一次卡在 WebEngine 组件另一次卡在写入 Qt Creator 插件时。处理思路分两步。第一步打开任务管理器切到“性能”标签观察磁盘活动。如果磁盘读写在动说明安装器还在干活只是该组件体积大、解压慢耐心等。第二步如果磁盘和 CPU 完全安静下来进程仍然无响应这时候不要直接结束进程——先去看安装日志找到卡住的那个文件大概率是刚才说的写入权限或者防病毒拦截。另外一个冷知识安装器如果检测不到足够的临时空间也会表现为进度条停滞。建议安装前顺手清理系统盘的 Temp 文件夹把空间腾出来。6.2 装完 Qt Creator 白屏或打不开Qt Creator 打不开很多人的第一反应是重装其实先排查两件事更有效。第一件事是确认 OpenGL 驱动是否可用。Qt Creator 的界面渲染依赖 OpenGL虚拟机环境或者某些远程桌面环境下的显卡驱动很弱会导致白屏。解决办法是给 Qt Creator 加环境变量强制它用更基础的渲染模式set QT_OPENGLsoftware第二件事是看有没有杀毒软件隔离了 Qt Creator 的核心 DLL。到安装目录的Tools\QtCreator\bin下检查比如QtWebEngineCore.dll、plugins\platforms\qwindows.dll这些文件是否还在。如果被隔离了恢复文件并加入白名单重启 Qt Creator 通常就好了。6.3 构建套件检测不到 MinGW 编译器装完 Qt Creator新建工程时发现“套件Kit”列表为空工具 - 选项 - 构建和运行 - 编译器里看不到 MinGW。这个坑我踩过很多次原因通常是两种。一是安装时没有勾选Developer and Designer Tools下的 MinGW 工具链。很多人在组件树里只勾了 Qt 模块忽略了下面那层导致编译器根本没装上。这种情况只能重装或者从别的机器拷贝 MinGW 目录过来并手动添加编译器路径。二是安装路径带空格导致 Qt Creator 自动检测失败。手动添加编译器的方法是在“编译器”选项卡里点击“添加 - MinGW”先把 C 编译器g.exe填进去再把 C 编译器gcc.exe填进去路径分别在D:\Qt\Tools\mingw730_64\bin\g.exe和gcc.exe。然后回到“构建套件”页面把编译器对应到Qt 5.14.2的 qmake 上。6.4 断网环境下 Qt 账号登录卡住离线安装包运行到“登录 Qt 账号”界面时如果当前机器断网这个界面可能会一直转圈让人误以为是安装程序无响应。正确的处理方式是直接找“Skip”或“跳过”按钮。Qt 5.14.2 的安装器允许跳过账号登录跳过之后不附加任何额外限制开源许可的组件照常安装。如果你找不到 Skip 按钮可以把网线拔掉再试——安装器检测到无网络后会自动跳过登录流程这是一个非常“反直觉”但确实有效的办法。注意跳过账号不等于跳过开源许可协议。LGPL/GPL 条款的同意页面还是要看清楚、确认勾选。如果你要做闭源商用软件记得评估 LGPL 条款对你的发布方式是否有影响这部分属于法律范畴本文不展开。7. 装完之后还要做的事7.1 用最小工程验证整条工具链安装成功不等于开发环境可用我用一个最小 QT 工程来做终验。在断网机器上打开 Qt Creator新建一个Qt Widgets Application工程名随便起比如OfflineCheck然后替换主函数代码#include QApplication #include QLabel int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel label(Qt 5.14.2 offline install OK); label.resize(280, 80); label.show(); return app.exec(); }点击左下角的绿色三角号选择目标套件后构建并运行。如果弹出一个显示这行文字的窗口说明 Qt 库、MinGW 编译器、Qt Creator 三者已经全部打通。这是整个安装流程里我最在意的一步前面所有操作都可以出错重来只要这一步能跑出窗口环境就算真正可用了。7.2 配置 qmake 与 PATH 环境变量虽然 Qt Creator 内部能自动找到 qmake但后续你可能要打开命令行做构建、跑 windeployqt 打包程序所以手动配一下环境变量更省事。右键“此电脑” - 属性 - 高级系统设置 - 环境变量新建一个用户变量QTDIR值填D:\Qt\5.14.2\mingw73_64。然后在Path变量末尾追加三行%QTDIR%\bin D:\Qt\Tools\mingw730_64\bin D:\Qt\Tools\QtCreator\bin配置完重启命令行输入qmake --version如果返回版本号和 Qt 5.14.2 字样就说明一切正常。7.3 后续离线补模块的思路Qt 开发过程中突然发现自己还需要某个没装的模块这种事很常见。断网环境下不能在线装但不用急着重装整个 Qt。推荐的思路是去联网机器上找一个同版本、同编译器、同系统架构的 Qt 安装目录把对应模块的文件夹直接整体拷贝过来放到目标机器的D:\Qt\5.14.2\mingw73_64\下然后在 Qt Creator 里重新扫描套件。因为 Qt 库在发布时有相对固定的目录结构模块文件夹复制过去后基本能直接用。这个过程需要保持版本严格一致比如都是 5.14.2、都是 64 位、都是 MinGW 编译任何一个不一致都可能引发符号不匹配的编译错误。我用这个办法给一台断网机器补过Qt Charts模块整个操作十分钟不到比重新跑一遍全量安装高效得多。当然如果你不确定拷贝来源是否可靠最稳妥的方案还是在首次安装时多勾几个可能用到的模块省得后面折腾。Qt 离线安装这件事本质上没有什么高深技巧更多是细心和耐心。我个人的体会是宁可第一遍安装时多花几分钟研究组件面板也别图快全选然后后面被各种疑难杂症拖住。断网环境里试错的成本比联网环境高得多因为每次安装失败你都可能要回到联网机器重新准备文件。上面这套流程是我在几台不同状态的内网机器上反复验证过的照着做基本一次就能稳定跑出可用环境。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →