项目场景:
在利用windeployqt打包构建好的Qt项目时,出现了报错Unable to find dependent libraries of D:\anaconda3\Library\bin\Qt5Multimediad.dll :Cannot open 'D:/anaconda3/Library/bin/Qt5Multimediad.dll':
windeployqt 打包方法
1、确认项目的构建设置,这里使用的是
Desktop_Qt_5_15_2_MSVC2019_64bit
,项目使用的是Debug构建,所以在生成的构建目录的Debug目录中可以找到项目的.exe
文件。
2、找到对应版本的
windeployqt.exe
文件,复制该文件的路径。D:\Qt\5.15.2\msvc2019_64\bin\windeployqt.exe
3、在项目的
.exe文件
目录下,按住Shift+点击鼠标右键
打开Powershell模式
,输入以下指令windeployqt.exe文件的路径 + 项目的可执行文件
。D:\Qt\5.15.2\msvc2019_64\bin\windeployqt.exe CloudMeeting.exe
由于在电脑的
anaconda
虚拟环境中安装了py的一些依赖库,包含了pyqt的依赖库(Qt5Widgets.dll 等),而且将该环境设置为了系统PATH。所以在执行指令时,出现了报错:Unable to find dependent libraries of D:\anaconda3\Library\bin\Qt5Multimediad.dll :Cannot open 'D:/anaconda3/Library/bin/Qt5Multimediad.dll':
如果你的系统环境中没有类似设置,那么通过上述方法就可以成功执行指令。
解决方案:
这里对报错原因进行了详细分析:报错原因分析。解决方法如下:
交换执行windeployqt.exe的顺序
,在windeployqt.exe
文件所在目录下,打开Powershell模式
,然后复制项目.exe文件的路径
,这里的路径为:D:\Desktop\C++project\meeting\build-CloudMeeting-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug\debug\CloudMeeting.exe
,记住项目路径都不能有中文。在命令行输入以下指令:.\windeployqt.exe D:\Desktop\C++project\meeting\build-CloudMeeting-Desktop_Qt_5_15_2_MSVC2019_64bit-Debug\debug\CloudMeeting.exe