news 2026/5/26 6:56:35

QT打包Release后,点击exe文件报错dll缺失

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QT打包Release后,点击exe文件报错dll缺失

这是 Qt 程序发布的常见问题。你的电脑有 Qt 环境,DLL 在系统路径中;同事电脑没有,所以找不到。

解决方案:使用 windeployqt 打包

方法一:命令行打包(推荐)

步骤1:打开 Qt 命令行工具

从开始菜单找到并打开:

Qt 5.x.x → Qt 5.x.x (MinGW/MSVC) → Qt 5.x.x Command Prompt

步骤2:进入 exe 所在目录

cd /d D:\你的项目\build\release

步骤3:运行 windeployqt

windeployqt MavlinkAnalyzer.exe ``` **步骤4:检查结果** 工具会自动复制所需的 DLL 到 exe 同目录,包括: - Qt5Core.dll - Qt5Gui.dll - Qt5Widgets.dll - Qt5SerialPort.dll - platforms/qwindows.dll - 等等... **步骤5:打包发送** 将整个文件夹压缩发给同事即可。 --- ### 方法二:手动操作(如果方法一不行) **必需的 DLL 文件:** ``` MavlinkAnalyzer.exe │ ├── Qt5Core.dll ├── Qt5Gui.dll ├── Qt5Widgets.dll ├── Qt5SerialPort.dll │ ├── platforms/ │ └── qwindows.dll │ ├── styles/ │ └── qwindowsvistastyle.dll │ └── (如果用MinGW编译) ├── libgcc_s_seh-1.dll ├── libstdc++-6.dll └── libwinpthread-1.dll

DLL 位置:

  • Qt DLL:C:\Qt\5.x.x\mingw_64\bin\msvc2019_64\bin\
  • platforms:C:\Qt\5.x.x\mingw_64\plugins\platforms\

完整打包脚本

创建deploy.bat,放在 exe 同目录:

@echo off echo 正在打包... :: 设置Qt路径(根据你的安装修改) set QT_PATH=C:\Qt\5.15.2\mingw81_64 :: 运行windeployqt %QT_PATH%\bin\windeployqt.exe --release MavlinkAnalyzer.exe :: 如果是MinGW编译,复制编译器运行时 copy "%QT_PATH%\bin\libgcc_s_seh-1.dll" . copy "%QT_PATH%\bin\libstdc++-6.dll" . copy "%QT_PATH%\bin\libwinpthread-1.dll" . echo 打包完成! pause ``` --- ### 打包后的目录结构 ``` MavlinkAnalyzer/ ├── MavlinkAnalyzer.exe ├── Qt5Core.dll ├── Qt5Gui.dll ├── Qt5Widgets.dll ├── Qt5SerialPort.dll ├── libgcc_s_seh-1.dll (MinGW) ├── libstdc++-6.dll (MinGW) ├── libwinpthread-1.dll (MinGW) ├── platforms/ │ └── qwindows.dll └── styles/ └── qwindowsvistastyle.dll

把这个文件夹压缩成 zip 就可以了。


一劳永逸的办法

方案一:静态编译(单个 exe,无依赖)

最彻底的方法,生成一个独立的 exe 文件,不需要任何 DLL。

缺点:需要重新编译 Qt 静态库,比较耗时(约1-2小时)。


方案二:一键打包脚本(推荐,简单实用)

在项目中创建deploy.bat,每次编译后双击运行即可:

@echo off chcp 65001 >nul echo ======================================== echo MAVLink Analyzer 一键打包工具 echo ======================================== :: ========== 配置区(只需修改一次)========== set APP_NAME=MavlinkAnalyzer set QT_PATH=C:\Qt\5.15.2\mingw81_64 set BUILD_PATH=%~dp0build\release set OUTPUT_PATH=%~dp0dist\%APP_NAME% :: ========================================== echo. echo [1/4] 清理旧文件... if exist "%OUTPUT_PATH%" rd /s /q "%OUTPUT_PATH%" mkdir "%OUTPUT_PATH%" echo [2/4] 复制主程序... copy "%BUILD_PATH%\%APP_NAME%.exe" "%OUTPUT_PATH%\" echo [3/4] 部署Qt依赖... %QT_PATH%\bin\windeployqt.exe --release --no-translations --no-opengl-sw "%OUTPUT_PATH%\%APP_NAME%.exe" echo [4/4] 复制编译器运行时... copy "%QT_PATH%\bin\libgcc_s_seh-1.dll" "%OUTPUT_PATH%\" 2>nul copy "%QT_PATH%\bin\libstdc++-6.dll" "%OUTPUT_PATH%\" 2>nul copy "%QT_PATH%\bin\libwinpthread-1.dll" "%OUTPUT_PATH%\" 2>nul echo. echo ======================================== echo 打包完成! echo 输出目录: %OUTPUT_PATH% echo ======================================== echo. :: 打开输出目录 explorer "%OUTPUT_PATH%" pause

使用方法

  1. 修改QT_PATH为你的 Qt 安装路径
  2. 修改BUILD_PATH为你的编译输出路径
  3. 每次编译后双击运行,自动生成可分发的文件夹

方案三:制作安装程序(最专业)

使用Inno Setup(免费)制作 exe 安装包。

步骤1:下载安装 Inno Setup

步骤2:创建installer.iss脚本:

#define MyAppName "MAVLink Analyzer" #define MyAppVersion "1.0" #define MyAppPublisher "ACFly" #define MyAppExeName "MavlinkAnalyzer.exe" [Setup] AppId={{YOUR-GUID-HERE} AppName={#MyAppName} AppVersion={#MyAppVersion} AppPublisher={#MyAppPublisher} DefaultDirName={autopf}\{#MyAppName} DefaultGroupName={#MyAppName} OutputBaseFilename=MavlinkAnalyzer_Setup_v{#MyAppVersion} Compression=lzma2 SolidCompression=yes [Files] Source: "dist\MavlinkAnalyzer\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" [Run] Filename: "{app}\{#MyAppExeName}"; Description: "启动程序"; Flags: nowait postinstall skipifsilent

步骤3:用 Inno Setup 编译,生成单个安装程序

最终效果

  • 生成一个MavlinkAnalyzer_Setup_v1.0.exe
  • 双击安装,自动创建桌面快捷方式
  • 支持卸载

方案四:集成到 Qt Creator(全自动)

.pro文件添加自动部署:

# 自动部署配置 CONFIG(release, debug|release) { DESTDIR = $$PWD/dist/release # Windows自动部署 win32 { DEPLOY_TARGET = $$shell_path($$DESTDIR/$$TARGET.exe) QMAKE_POST_LINK += $$[QT_INSTALL_BINS]/windeployqt --release --no-translations $$DEPLOY_TARGET } }

这样每次 Release 编译后自动完成依赖部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 0:05:20

Venera跨平台漫画阅读器:你的终极免费漫画收藏管家

Venera跨平台漫画阅读器:你的终极免费漫画收藏管家 【免费下载链接】venera A comic app 项目地址: https://gitcode.com/gh_mirrors/ve/venera 还在为不同设备上的漫画阅读体验不一致而烦恼吗?Venera跨平台漫画阅读器完美解决了这一痛点&#xf…

作者头像 李华
网站建设 2026/5/26 5:19:00

Android模糊效果终极指南:BlurView完整解决方案

还在为Android应用缺少iOS那种优雅的模糊效果而烦恼吗?BlurView为您提供完整的模糊效果实现方案,让您的应用界面更加现代化和美观。这个Android模糊效果库集成了多种模糊算法和灵活的更新模式,让您轻松实现各种复杂的视觉模糊需求。 【免费下…

作者头像 李华
网站建设 2026/5/26 5:14:56

模型又又又升级了,给你一个方法让你测试出模型的天花板

既然又升级了,我们今天就给他上点强度!——请给出一个金融工程方面的高难度例子,要求测试出模型的能力上限!这个案例几乎涵盖了金融工程实践中的所有核心环节。一个模型若能在此案例上给出连贯、深入且实用的回答,则充…

作者头像 李华
网站建设 2026/5/25 17:25:17

(深度解析)VSCode量子作业编译与执行错误全记录(稀缺实战经验)

第一章:VSCode量子作业的错误处理 在开发量子计算程序时,使用 VSCode 编辑器配合 Q# 或其他量子语言插件进行作业编写已成为主流实践。然而,由于量子模拟环境的复杂性和语言扩展的特殊性,开发者常遇到编译错误、运行时异常或调试信…

作者头像 李华
网站建设 2026/5/26 5:08:46

StarRocks索引系统终极指南:5种索引类型如何让查询速度提升10倍?

StarRocks索引系统终极指南:5种索引类型如何让查询速度提升10倍? 【免费下载链接】starrocks StarRocks是一个开源的分布式数据分析引擎,用于处理大规模数据查询和分析。 - 功能:分布式数据分析;大规模数据查询&#x…

作者头像 李华
网站建设 2026/5/25 16:59:36

你还在手动查API?高效利用VSCode插件自动解析Azure QDK文档

第一章:VSCode Azure QDK 的 API 文档Azure Quantum Development Kit(QDK)为量子计算开发者提供了完整的开发环境,结合 Visual Studio Code(VSCode)插件,能够高效编写、调试和模拟量子程序。通过…

作者头像 李华