计算机系统应用教程网站

网站首页 > 技术文章 正文

Windows的Qt部署工具 - windeployqt介绍

btikc 2025-01-07 11:05:39 技术文章 30 ℃ 0 评论


Windows有一个专门的部署工具叫windeployqt, 他的作用是用来自动化创建deployable文件件(包括Qt相关的依赖,比如libraries, QML imports, plugins, translations)用来让你的executable能够跑起来。他会创建UWP(Universal Windows Platform)的沙箱或者是传统Windows desktop applications的安装目录树。用来将对应的内容全部打包进installation package.


可以在QTDIR/bin/windeployqt中找到,他需要在build environment中去运行,当你使用Qt Installer的时候,QTDIR/bin/qtenv2.bat应该会设置起来。


windeploqt的工作原理是扫描.exe文件或者文件夹中带.exe文件作为参数,并且扫描对应exe的相关依赖。如果在传递的时候附上--qmldir参数,那么windeployqt会利用qmlimportscanner工具来扫描对应放在QML import dependencies文件夹中的QML文件。验证好相关的依赖之后进行拷贝到exe的目录中。如果此时你的Qt在编译的时候关闭了-relocatable,那么windeployqt会将hardcode的path替换成相对路径。


对于传统的Windows desktop应用,相关的runtime文件(编译器需要的C运行库)也会被遗弃拷贝到deployable文件夹中。除非你使用了--no-compiler-runtime选项。如果你使用MSVC进行的C++派发,将会递归安装对应的Visual C++ Redistributable Packages.


不然就是把compiler runtime shared library放进去


当然如果你的application需要额外的第三方库,比如database libraries,windeploy是不会帮你考虑到的。相关其他的选项可以通过下面的图片进行查看



PS:

对于Qt plugin来说没有对应的static linking的方法,因此你必须采用shared libraries的部署方式进行部署。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表