visul studio打包qt程序

本文分享了在Win7环境下,使用VS2017和QT Creator进行QT应用程序的打包与部署过程。详细介绍了生成解决方案、添加依赖动态库、使用Dependency Walker、dumpbin指令及windeployqt工具的方法,并提供了跨电脑运行的解决策略。
部署运行你感兴趣的模型镜像

之前没做过qt,这两周都在干这个,环境win7,vs2017,qt creator,上周五开始折腾封包,这周二上午搞定第一个绿色版,期间多次打包后在其他电脑上不能顺利执行,要么是无反应,要么是报错,记录分享下,希望可以给同仁提供些帮助。

1、生成解决方案,选择release,完成后在release文件夹找到***.exe文件;

2、得到***.exe文件后,接下来就得添加项目依赖动态库,如何得到项目依赖库呢,二或三种方案,

  • 方案一:http://www.dependencywalker.com/ ,dependency walker查找依赖dll,将***.exe文件拖入即可。

  • 方案二:vs自带命令行,dumpbin指令,如C:\Program Files (x86)\Microsoft Visual Studio\2017\Community>dumpbin /dependent
    s   D:\***.exe,请自行替换指令文件路径D:\***.exe为目标***.exe文件;执行后即可得到.dll列表,在系统下找到dll拷贝到release文件目录下即可,注意,此时如果编译的是64位系统的程序,不必去64位目录下找,应该在32位C:\Windows\System32目录下查找,如果用过方案一就不会出现此问题,因为其中已经有明显路径,很多程序在其他电脑上不能使用就是没注意这点,我自己也犯了错误,浪费了差不多一天时间;

  • 方案三:为什么说是二或三种方案,因为这是一个必须的补充,在执行方案一或者方案二任一的情况下,执行windeployqt,打开系统命令行:执行D:\Qt\Qt5.12.1\5.12.1\msvc2017_64\bin\windeployqt.exe D:\***.exe,官方部署工具会自动部署需要的动态库。

3、将添加dll后的release文件考入其他未安装qt和vs的电脑,执行exe,若能成功执行,若报错,则补充对应dll,若不报错也无反应,则进入D:\Qt\Qt5.12.1\5.12.1\msvc2017_64\bin(此为你选择的目标编译版本文件夹),此文件下所有dll文件考入dll库即可。

4、安装包封包,由于项目需要的库和文件很大,使用Microsoft Visual Studio Installer Projects将会报出“存储空间不足,无法完成此操作”https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/kz0ke5xt(v%3dvs.100)#%E7%94%9F%E6%88%90%E5%AE%89%E8%A3%85%E9%A1%B9%E7%9B%AE%E5%A4%B1%E8%B4%A5%E9%94%99%E8%AF%AF%E4%B8%BA%E5%AD%98%E5%82%A8%E7%A9%BA%E9%97%B4%E4%B8%8D%E8%B6%B3%E6%97%A0%E6%B3%95%E5%AE%8C%E6%88%90%E6%AD%A4%E6%93%8D%E4%BD%9C,所以使用Advanced Installer打包,新建工程,选定release文件夹,之后进行下一步即可,注意文件夹不能使用中文,否则会丢失。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在使用 Visual StudioQt 进行应用程序打包发布时,通常需要完成以下几个关键步骤,以确保生成的 `.exe` 文件能够在目标系统上正常运行: ### 1. 生成 Release 版本的可执行文件 在 Visual Studio 中打开 Qt 工程后,切换至 **Release** 模式,并进行编译。编译完成后,在工程目录下的 `x64/Release`(或 `Win32/Release`)子目录中可以找到生成的 `.exe` 文件[^1]。 ### 2. 使用 `windeployqt` 收集依赖库 由于 Qt 应用程序依赖于多个 Qt 动态链接库(DLL),因此需要使用 Qt 自带的工具 `windeployqt.exe` 来自动收集这些依赖文件。打开 Qt 提供的命令行工具(如 Qt 5.13.1 for MSVC 2015 64-bit),进入 `.exe` 所在目录并执行以下命令: ```bash windeployqt.exe your_application.exe ``` 该命令会将所有必需的 Qt 库文件复制到当前目录中,确保程序可以在没有 Qt 环境的系统中运行[^3]。 ### 3. 准备发布目录结构 创建一个用于发布的文件夹,例如 `v1.0.0`,并在其中建立以下结构: ``` v1.0.0/ ├── nsis/ │ └── script.nsi ├── 依赖/ │ ├── 配置/ │ └── 源/ ``` - **配置** 文件夹用于存放程序所需的配置文件或外部资源(如 `config.ini`)。 - **源** 文件夹用于存放通过 `windeployqt` 生成的 `.exe` 文件及其依赖库。 - **nsis** 文件夹用于存放 NSIS 安装脚本文件[^1]。 将 `.exe` 文件和依赖库复制到 `源` 文件夹中,并将程序图标等资源复制到 `配置` 文件夹中。 ### 4. 使用 NSIS 创建安装包 安装 [NSIS](https://nsis.sourceforge.io/Download)(Nullsoft Scriptable Install System),然后编写 `.nsi` 脚本文件以定义安装流程。以下是一个简单的 NSIS 脚本示例: ```nsis OutFile "OfflineDataParserInstaller.exe" InstallDir "$PROGRAMFILES\OfflineDataParser" Section SetOutPath "$INSTDIR" File /r "D:\my_project\c++_project\OfflineDataParser\v2.0.2\依赖\源\*.*" CreateShortcut "$DESKTOP\OfflineDataParser.lnk" "$INSTDIR\OfflineDataParser.exe" SectionEnd ``` 保存为 `script.nsi`,然后使用 NSIS 编译器生成安装包。最终生成的 `.exe` 安装程序可以用于在目标系统上部署应用程序。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值