获取VS编译可执行文件所依赖动态库

本文介绍了在使用Visual Studio打包可执行文件时如何处理动态库的缺失问题,以及在迁移至其他机器时遇到的Qt平台插件和SQL驱动加载失败的错误。解决方案包括提取并拷贝动态库,以及将Qt安装路径下的platforms和sqldrivers文件夹整体复制到应用目录。确保迁移后程序能正常运行。

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

VS编译可执行文件通过Installer Projects进行打包时,依赖的动态库没有自动加载进来,所以通过脚本先提取出来,再一起打包。

首先我们在VS运行时,输出窗口有加载动态库的信息,把信息复制到txt文件中,然后通过脚本解析字符串,将动态库拷贝下来,C盘可以去掉,有需要时再单独拷贝。

Python脚本,根据自己的需求改动

# -*- coding:utf-8 -*-
import shutil
import re
import os

if not os.path.exists(r'.\bin\\'):
        os.makedirs(r'.\bin\\')
        
for line in open("./dll.txt","r",encoding="utf-8"): 
    #print (line)
    b=re.compile('已加载“(.*?)”。').findall(line)
    if len(b):
        # 指定存放目录
        print (b)
        str1="C:\\WINDOWS\\"
        if str1 in b[0]:
            continue
            
        targetPath = r'.\bin\\'
        shutil.copyfile(b[0], targetPath + b[0].split("\\")[-1])

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

遇到的问题

1、在迁移到其它机器时,Qt报错:

This application failed to start because it could not find or load the Qt platform plugin "windows"

解决方法:把QT安装路径下platforms文件夹(我的是D:\QT_IDE\5.10.1\msvc2015_64\plugins\platforms)拷贝到应用程序所在目录(注意一定要把目录拷过去,只拷贝里面的dll文件不行)。

如上述方法没有解决,可参考This application failed to start because it could not find or load the Qt platform plugin "windows" - foo__hack - 博客园

2、在迁移到其它机器时,SQL数据库连接报错:

"QSqlDatabase: QMYSQL driver not loaded"

同样将QT安装路径下sqldrivers文件夹拷贝到应用程序所在目录,一定要整个文件夹拷过去。

综上,迁移到其它机器有关Qt报错的,将Qt路径下相关文件夹直接拷贝到应用程序所在目录。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值