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程序,看是不是缺东西。

相关推荐
名字还没想好☜7 小时前
Python f-string 进阶:数字格式化、对齐填充、调试 = 号与嵌套表达式
开发语言·数据库·python·字符串格式化·f-string
ltl7 小时前
Serverless 数据库弹性理论:Neon 与 Aurora Serverless v2
数据库
一壶浊酒..10 小时前
Scrape Webpack练习
开发语言·javascript·webpack
命运之光11 小时前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
命运之光11 小时前
【C语言完整代码】图书管理系统:图书馆场景下的增删改查实战
c语言·开发语言
猿长大人11 小时前
C# | Serilog 新手入门
开发语言·c#·.net·log
marvelyu12 小时前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库
ZCBUS实时计算12 小时前
金融证券实时数仓建设实践:轻量化实时计算平台落地,实现交易数据端到端秒级处理
大数据·数据库·数据仓库·金融·flink·dba·etl
zd20057212 小时前
海洋微生物数据库
数据库·宏基因组
海上小飞龙12 小时前
Redis 分布式锁原理:从 SET NX EX 到 Redisson 看门狗
数据库·redis·分布式