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

相关推荐
Bert.Cai22 分钟前
Oracle INSTR函数详解
数据库·oracle
AC赳赳老秦44 分钟前
OpenClaw+Power Apps 实战:自动生成 Power Apps 应用、连接 Excel 数据源
大数据·开发语言·python·serverless·excel·deepseek·openclaw
提笔了无痕1 小时前
如何用Go实现整套RAG流程
开发语言·后端·golang
(Charon)1 小时前
【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】
java·开发语言
2601_961875241 小时前
法考考试时间安排及科目|时间表|资料已整理
开发语言·c#·inverted-index·suffix-tree·sstable·r-tree·lsm-tree
AI科技星2 小时前
数术工坊第八卷:算力革命
c语言·开发语言·网络·量子计算·agi
金色熊族2 小时前
QTransform使用心得(二)--仿射变换、非仿射变换、矩阵
qt·线性代数·矩阵
geovindu2 小时前
go: Generators Pattern
开发语言·后端·设计模式·golang·生成器模式
茉莉玫瑰花茶2 小时前
综合案例 - AI 智能租房助手 [ 5 ]
服务器·数据库·人工智能·python·ai
ywl4708120872 小时前
jwt生产token,简单版helloworld
java·数据库·spring