Qt打包含有第三方库的软件为应用程序——CQtDeployer

1.下载Dependencies并安装,File打开你要打包的exe文件,然后就会告诉你运行这个程序需要哪些dll库

  1. 下载CQtDeployer并安装

https://github.com/QuasarApp/CQtDeployer/releases

  1. 打开终端,cd到你的exe所在文件夹

笔者的路径是这个,那我就在终端运行这条指令 进入我的exe所在路径

bash 复制代码
cd /d "D:\mydocuments\Qt_project\DropletSubsystem0323\CQt"

然后运行下面的指令打包。注意里面的qmake.exe 、 cqtdeployer.exe、以及最后的文件夹的名字,都是我的工程的,你要根据你的实际路径替换这里,文件夹名字也要替换,你想让打包完的文件夹叫啥就是啥

bash 复制代码
"C:\Program Files\CQtDeployer\1.6\cqtdeployer.exe" -bin DropletSubsystem.exe -qmake "D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin\qmake.exe" -targetDir "./DeployResult"
  1. 上面的步骤只打包qt需要的库,如果你的工程里有第三库,这个命令并不包含这些库在内,需要你先把这些第三方库的路径告诉它,它才可以帮你打包进去!!,这时,我们最开始使用dependences列出的dll库路径 就派上用场了,当然你要有lib库的话,这个路径也要告诉它。

比如,我的.pro文件里写的库路径是这样的

cpp 复制代码
INCLUDEPATH += "C:/Program Files/IVI Foundation/VISA/Win64/Include"

# 指向标准的 VISA 库文件目录
LIBS += -L"C:/Program Files (x86)/IVI Foundation/VISA/WinNT/Lib_x64/msc/"

# 链接导入库
LIBS += -lvisa64

INCLUDEPATH += "D:/mysql/mysql-connector-c++-8.0.33-winx64-debug/mysql-connector-c++-8.0.33-winx64/include/jdbc"


unix|win32: LIBS += -L$$PWD/../../../../mysql/mysql-connector-c++-8.0.33-winx64/mysql-connector-c++-8.0.33-winx64/lib64/ -lmysqlcppconn -llibcrypto -llibssl

INCLUDEPATH += $$PWD/../../../../mysql/mysql-connector-c++-8.0.33-winx64/mysql-connector-c++-8.0.33-winx64/lib64
DEPENDPATH += $$PWD/../../../../mysql/mysql-connector-c++-8.0.33-winx64/mysql-connector-c++-8.0.33-winx64/lib64

那我最终的包含所有库的打包命令就是这样的:

bash 复制代码
"C:\Program Files\CQtDeployer\1.6\cqtdeployer.exe" -bin DropletSubsystem.exe -qmake "D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin\qmake.exe" -libDir "C:/Program Files/IVI Foundation/VISA/Win64/Include" -libDir "D:/mysql/mysql-connector-c++-8.0.33-winx64/mysql-connector-c++-8.0.33-winx64/lib64" -targetDir "./DeployResult" -deploySystem true

这条命令里,带引号的都是你电脑上相关文件的路径和你的文件夹名称,以及bin后面是你的exe名称,这些都是要替换成你实际的,其他字符就是命令本身的名称

-deploySystem true 参数值为 true 意思是 启用系统库部署

如果没有后面的true 会报错:Error: Missing argument

-libDir 后面跟的就是库路径,不管是动态库还是静态库。方便起见,可以把所有的库文件都放在一个文件夹里,然后运行这个命令一次性打包完成,就不用手动再添加库文件了。

  1. 打包完成以后,我们需要在一个没有开发环境的电脑上运行一下,这样才知道是不是缺东西,可以使用windows 沙盒来模拟这一步。

支持这个功能的系统:Windows 10 专业版/企业版/教育版(1903 或更高) 或 Windows 11 专业版/企业版/教育版

系统架构: 64位处理器(AMD64 或 ARM64)

在任务栏搜索框输入 打开或关闭 Windows 功能 ,打开 在弹出的列表中找到 Windows 沙盒 (SandBox)勾选它,点击"确定" 系统会搜索并安装所需文件,安装完成后重启电脑,或者在微软商店也可以安装,然后在任务栏搜索

就打开一个全新的虚拟windows系统,可以直接把打包好的文件夹放进去,然后运行exe程序,看是不是缺东西。

相关推荐
YaBingSec1 小时前
玄机网络安全靶场:Hadoop YARN ResourceManager 未授权 RCE WP
大数据·数据库·hadoop·redis·笔记·分布式·web安全
Aloudata1 小时前
如何通过 NoETL 指标平台构建企业唯一指标计算中心
大数据·数据库·数据分析·指标平台
qq_40999093?1 小时前
NoSQL数据库解析:Redis
数据库·redis·nosql
小碗羊肉1 小时前
【MySQL | 第五篇】事务
数据库·mysql
simple-L61 小时前
Vue3 前端开发技术文章大纲
开发语言
dFObBIMmai1 小时前
Python Celery任务队列怎么配_实现Web后台异步任务调度处理
jvm·数据库·python
南宫萧幕1 小时前
Python与Simulink联合仿真:基于DQN的HEV能量管理策略建模与全链路排雷实战
开发语言·人工智能·python·算法·机器学习·matlab·控制
于歌8521 小时前
Oracle批处理操作方法
数据库·oracle
日取其半万世不竭1 小时前
PostgreSQL 云服务器安装配置指南:从零开始搭建生产数据库
服务器·数据库·postgresql