VS2017+QT发布程序

本文详细介绍了在Windows环境下发布程序的具体步骤,包括配置release属性、使用windeployqt部署Qt库、利用dumpbin检查导入的dll文件等。为确保程序顺利运行,还提供了查找并复制所需dll文件的具体路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一下win下的发布程序过程,蛋疼的过程,首先配置release的属性,属性中VC++目录选项,把头文件和库文件的目录配置好,库管理器中配置附加库目录,链接器中配置附加依赖项,把指定的库配置进去。

使用CMD命令进入到exe文件所在目录,执行windeployqt  exe文件,会把Qt中用到的库自动拷贝到这个目录中,在进入到

```

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2017\Visual Studio Tools\VC 

```

执行 “ 适用于 VS 2017 的 x64 本机工具命令提示 ”  进入到exe所在的目录中,执行

```

dumpbin /IMPORTS exe文件 > output.txt

```

然后查看output.txt文件,把除了Qt之外的dll文件找到并放到exe所在的目录,推荐使用everything工具进行查找,把我这次的发布目录做一下记录,

SHELL32.dll  ,  C:\Windows\System32

 api-ms-win-crt-locale-l1-1-0.dll ,api-ms-win-crt-math-l1-1-0.dll,api-ms-win-crt-stdio-l1-1-0.dll,api-ms-win-crt-heap-l1-1-0.dll, api-ms-win-crt-runtime-l1-1-0.dll , ole32.dll ,KERNEL32.dll,   C:\Program Files (x86)\Windows Kits\10\Redist\10.0.17763.0\ucrt\DLLs\x64

vcruntime140.dll  , MSVCP140.dll ,在G:\VS2017\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64

最后把连接器中的外部库文件放入到这个目录中,实际上 还缺少一个库  concrt140.dll  这个库实际上也是需要的,在G:\VS2017\VC\Redist\MSVC\14.16.27012\x64\Microsoft.VC141.CRT 这里,至此 就可以把这个文件夹打包对外发布了。

### 解决 VS2017Qt 下应用程序启动失败的问题 当遇到 `This application failed to start because no Qt platform plugin could be initialized` 错误时,通常是因为缺少必要的平台插件或环境配置不当。以下是几种解决方案: #### 方法一:检查并设置环境变量 确保系统的 PATH 环境变量包含了 Qt 的 bin 文件夹路径。这可以通过以下方式实现: - 打开系统属性中的高级设置。 - 编辑环境变量,在 Path 中添加 Qt 安装目录下的 bin 路径。 此操作可以使操作系统定位到所需的 DLL 文件和其他资源[^3]。 #### 方法二:手动部署依赖项 对于 Release 版本的应用程序,建议将所有必需的 Qt 插件和库文件复制到可执行文件所在的同一目录中。特别是要确认存在 `platforms/qwindows.dll` 或其他适用的操作系统特定平台插件。此外,还可以考虑将 `libEGL.dll` 复制过来以防止潜在的相关错误[^4]。 ```bash xcopy "C:\Qt\5.9.1\msvc2017_64\plugins\platforms\qwindows.dll" .\ copy "C:\Qt\5.9.1\msvc2017_64\bin\libEGL.dll" . ``` 以上命令假设 Qt 已经安装在默认位置;实际路径可能有所不同,请根据实际情况调整。 #### 方法三:使用 windeployqt 工具自动处理依赖关系 WinDeployQt 是一个非常有用的工具,能够自动化检测并拷贝运行所需的各种依赖文件至目标发布目录内。只需打开命令提示符窗口,并输入如下指令即可完成整个过程: ```bash windeployqt.exe --dir deploy_folder path_to_your_executable_file ``` 这种方法不仅简化了部署流程,还减少了人为失误的可能性[^1]。 通过上述三种途径之一应该能有效解决问题。值得注意的是,虽然第一种方法简单易行,但它可能会带来一些副作用,比如影响全局环境或其他项目。因此更推荐采用第二种或第三种更为精确的方法来解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值