网站首页 > 技术文章 正文
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的部署方式进行部署。
猜你喜欢
- 2025-01-07 推荐一款支持40+通讯协议的强大工业调试软件
- 2025-01-07 2024年windows原生应用用什么框架开发?
- 2025-01-07 基于跨平台的实时数据处理系统的设计
- 2025-01-07 一文分析QtCreator中MSVC编译套件
- 2025-01-07 C++Qt开发——事件处理函数
- 2025-01-07 Qt开发——NotePad实例开发
- 2025-01-07 解决Linux 下QT Creator 无法输入中文
- 2025-01-07 (1) 安装配置 pyqt5(windows),使用designer设计工具
- 2025-01-07 Linux平台上的PHP IDE盘点
- 2025-01-07 Ubuntu 24.04 解决运行 Flameshot 报错:Unable to capture screen
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)