QT(qml)程序打包成绿色exe可执行或exe可安装文件(Enigma Virtual Box、Inner SetUp Compiler)

一、qml项目程序打包依赖库

项目编译得到的exe,直接运行是需要相关的依赖库;借助Qt自带的windeployqt可以导入exe程序运行所需要的依赖库;

示例: windeployqt 程序.exe -release -qmldir Qt安装目录下的qml库路径 --dir 指定打包到固定的目录

注意事项:

1).打包目录不支持含中文路径

2).打包依赖的qtenv2.bat(好像是这个,暂时没去看;下次确定了再修改)分32和64位版本;

参考: 

(1).带参数解析 Qt QML 程序如何使用工具 windeployqt.exe 打包部署? - 知乎 (zhihu.com)

(2).带32和64区别提示 QT-windepolyqt打包程序详细介绍_qtdeploywin-CSDN博客

二、 对windeployqt打包出来的依赖库文件进行封装

1.利用Enigma Virtual Box压缩成绿色可执行exe文件(暂未实现脚本式,不做赘述)

参考链接:

1).带Qt打包步骤: QT使用Enigma Virtual Box打包exe_enigma virtual box 打包qt 文件无法运行-CSDN博客

2).图文更详细: 使用 Enigma Virtual Box 打包单文件_enigma virtual box使用教程-CSDN博客

2.利用inner setUp Compiler打包成exe可安装文件

参考链接:

1).链接:超级详细:使用Inno Setup打包可执行的exe软件,可在任何电脑中运行。_nno setup 打exe-CSDN博客 

2).链接2:Inno Setup软件 打包多个安装包程序_inno steup打包多个setup-CSDN博客 

3).链接3: 使用inno setup将exe文件及其附带文件打包成安装文件_怎么将一个exe和一个txt文件一同打包成一个win可下载的安装包-CSDN博客

(1).制作完成inno setUp的打包.iss文件后,即可利用目录下Compli32.exe文件制作32位可安装的exe执行文件;

指令 Compil32.exe /cc 打包步骤.iss文件

 (2).将制作并验证好的iss文件拷贝到编译目录,并生成Compil32.exe的快捷方式链接,也拷贝到编译目录;

(3).添加构建步骤到配置打包脚本到构建目录中,执行编译后即可生成exe文件(注意:exe文件生成的目标路径为.iss打包文件配置的目标目录,以及目标名称)

参考脚本 WindployqtPackge.bat:

::QT环境下的打包脚本 -> C:\QtOnline\5.12.12\mingw73_32\bin\qtenv2.bat
@echo off
echo Setting up environment for Qt usage...
set PATH=C:\QtOnline\5.12.12\mingw73_32\bin;C:/QtOnline/Tools/mingw730_32\bin;%PATH%
cd /D C:\QtOnline\5.12.12\mingw73_32


::程序包名
set exename=TheControl.exe
::windeploy路径
set qmlDir=C:\QtOnline\5.12.12\mingw73_32\qml
windeployqt %~dp0%exename% -release -qmldir %qmlDir% --dir %~dp0exe
xcopy /y %~dp0%exename% %~dp0%exe


%~dp0Compil32.lnk /cc %~dp0toPackage.iss
::iscc %~dp0toPackage.iss

::pause

  • 26
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,针对您的需求,我可以给您提供一个通用的脚本,可以根据 x86 和 ARM 架构自动判断是否已经安装 Qt,如果没有安装则自动安装,然后自动编译 Qt 项目源码,打包执行程序并拷贝依赖库。 ```bash #!/bin/bash # 指定 Qt 项目源码目录和构建目录 SRC_DIR=/path/to/qt/project BUILD_DIR=/path/to/qt/build # 指定 Qt 版本号 QT_VERSION=5.15.2 # 指定 Qt 安装路径 INSTALL_DIR=/path/to/qt/install # 判断是否已经安装 Qt if [[ $(uname -m) == "x86_64" ]]; then if [[ $(dpkg -l | grep "qt$QT_VERSION-base" | wc -l) -eq 0 ]]; then sudo apt-get update sudo apt-get install -y qt$QT_VERSION-base qt$QT_VERSION-declarative qt$QT_VERSION-quickcontrols qt$QT_VERSION-svg qt$QT_VERSION-tools fi else if [[ $(dpkg -l | grep "qtbase5-dev" | wc -l) -eq 0 ]]; then sudo apt-get update sudo apt-get install -y qtbase5-dev qtdeclarative5-dev qtmultimedia5-dev libqt5svg5-dev libqt5opengl5-dev libqt5network5 libqt5network5-dev libqt5widgets5 libqt5widgets5-dev libqt5gui5 libqt5gui5-gles libqt5gui5-dev libqt5qml5 libqt5qml5-dev libqt5quick5 libqt5quick5-dev libqt5sql5 libqt5sql5-sqlite libqt5sql5-dev libqt5test5 libqt5test5-dev qttools5-dev qttools5-dev-tools fi fi # 编译 Qt 项目源码 cd $BUILD_DIR qmake $SRC_DIR make -j$(nproc) # 打包执行程序 mkdir -p $BUILD_DIR/release cp -rv $BUILD_DIR/$SRC_DIR $BUILD_DIR/release cp -v $INSTALL_DIR/lib/*.so* $BUILD_DIR/release/$SRC_DIR # 打包依赖库 mkdir -p $BUILD_DIR/release/libdeps ldd $BUILD_DIR/release/$SRC_DIR | grep "=>" | awk '{print $3}' | sort -u | xargs -I '{}' cp -v '{}' $BUILD_DIR/release/libdeps echo "Qt $QT_VERSION project build completed!" ``` 使用时,您需要将脚本中的路径和参数修改为您自己的设置,然后运行脚本即可。脚本会自动根据架构判断是否已经安装 Qt,如果没有安装则自动安装,然后编译 Qt 项目源码,打包执行程序并拷贝依赖库。 希望这个脚本能够帮到您。如果您还有其他问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值