Qt Vs 开发程序打包发布(包含很多第三方库的)

新手上路,纯属做个记录

1.准备工作

1.1 打开 Qt 5.9.2 64-bit for DeskTop(MSVC 2015)

Qt Vs 开发程序打包发布(包含很多第三方库的)_第1张图片

1.2 使用“cd 路径” 命令进入到一个新文件夹,该新文件夹内部存放Release 版本的**.exe 文件。本例中将生成的可执行文件testPackage.exe 复制到了

D:\Users\angzh \Desktop\O3dPackage文件下

Qt Vs 开发程序打包发布(包含很多第三方库的)_第2张图片

 

Qt Vs 开发程序打包发布(包含很多第三方库的)_第3张图片

 

2.Qt打包

 Qt 命令行执行 windeployqt 工具,输入: “windeployqt ***.exe” 就完成了。

Qt Vs 开发程序打包发布(包含很多第三方库的)_第4张图片

 

3. 拷贝exe需要的动态库

注意:第三方库调用第三方库也要复制过来

      比如 :使用到了osg,那么osg需要的第三方库也要拷过来,否则还是运行不起来。

                osg的osgPlugins这个文件也要复制到exe所在文件夹。

方法一:

打开 vs2015 x64 本机命令提示符

Qt Vs 开发程序打包发布(包含很多第三方库的)_第5张图片

 

进入到 刚才存放**.exe的新文件的位置,输入命令:

D:\Users\angzh\Desktop\O3dPackage>dumpbin /IMPORTS ****.exe > output1.txt

 

O3dPackage在文件内生成output.txt, 打开output.txt,就会看到可执行文件调用的所有动态库:

找到各个**.dll 复制到O3dPackage 文件下即可。可以使用Everything工具查找。

Qt Vs 开发程序打包发布(包含很多第三方库的)_第6张图片

 

方法二:

如果动态库有很多那么复制起来很麻烦,可以使用window的批处理:

通过观察程序运行时Vs输出窗口中加载的dll库:

Qt Vs 开发程序打包发布(包含很多第三方库的)_第7张图片

这样加载的dll库就一目了然了,也有路径。写一个.bat文件

Qt Vs 开发程序打包发布(包含很多第三方库的)_第8张图片

这样复制就完成了。

 

方法三:

      使用Dependency Wallker 打开***.exe 查找不存在的.dll,其中黄色的问号标识是不存在的。Dependency Wallker可以递归显示可执行文件(exe)和动态库(dll)调用的动态库。

      打开**.exe文件之后各个节点可能是展开的很乱,可以右击任意节点选择“折叠所有(L)”,然后再单击根节点的加号展开就是如图所示的样式,这样很清晰。

Qt Vs 开发程序打包发布(包含很多第三方库的)_第9张图片

如果还想看到QGIS_CORE.DLL调用的动态库,右击选择“在外部查看器中查看”

Qt Vs 开发程序打包发布(包含很多第三方库的)_第10张图片

就会弹出一个关于QGIS_CORE.DLL调用的动态库的新窗口,其中黄色问号是没有链接上,把黄色缺失库的找到拷在**.exe 所在路径下即可。

 

参考:https://blog.csdn.net/su_unknown_world/article/details/82317637

只是在其基础上补充了一点

 

你可能感兴趣的:(Qt Vs 开发程序打包发布(包含很多第三方库的))