QT 打包程序

windows:

一、qtcretor选择需要版本的编译器将程序编译成release版本的exe,将exe放到一个单独的文件夹。

二、从开始菜单打开qt命令行(需要与可执行程序的编译版本一致)

三、从命令行切换到exe所在路径,运行windeployqt命令。

  3.1. 不含qml的程序:  D:\DevelopApp\QT\5.10.1\5.10.1\mingw53_32\bin\windeployqt.exe L04Showapp_release.exe(若打包debug需要加--debug参数在windployqt.exe后面(Windows Kits\10\bin\10.0.XXXXX\x64\ucrt\ucrtbased.dll),但是一般不打包debug版本,容易出现非标库依赖缺失)

  3.2. 含有qml的程序:     D:\DevelopApp\QT\5.10.1\5.10.1\mingw53_32\bin\windeployqt.exe --qmldir xxx/Qt/xxx/msvc2019_64/qml L04Showapp_release.exe(windeployqt --qmldir QT对应版本安装目录中qml文件所在路径 exe名称

四、若正确,则会自动将所需要的动态库等文件拷贝到exe当前路径。

五、如果他人使用,需要在自己编译环境下拷贝所有的动态库,然后一个个的移动,点击可执行程序看看是否能够运行。(在之前先去掉自己的环境变量试验)

 

 

msvc通关过上述步骤后运行失败。

1.打开QT命令行报错:Setting up enviroment for Qt usage...

 解决办法:QT命令行(msvc_64,根据自己选择的msvc版本)输入call D:\DevelopPath\Vs2019\VC\Auxiliary\Build\vcvars64.bat。弹出以下弹窗

2.暴力解决 

将D:\DevelopPath\QT15.2\5.15.2\msvc2019_64\bin下的所有xxx.dll(或xxxd.dll)复制到exe所在目录,并复制plugins(比较大可以删除不要的插件)、qml、resources、translation到exe所在目录。

 3.报错,Unable to find dependent libraries of E:\Anaconda3\Library\bin\Qt5Widgetsd.dll : Cannot open ‘E:/Anaconda3/Library/bin/Qt5Widgetsd.dll’:

先将环境变量中类似这条路径:E:\Anaconda3\Library\bin,随便修改。打包后再改回来就行。

posted @ 2021-07-04 22:45  xianyongchao  阅读(557)  评论(0)    收藏  举报