Qt学习——Qt程序打包

一、window

工具

 

1.1 使用windeployqt打包

以Release模式编译项目,然后将release文件夹中的exe文件复制到指定目录下。

以管理员身份运行Qt 5.10.1 for Desktop,根据编译器选择对应编译版本,然后cd到放置exe的目录下,运行下面指令,完成后程序自动将需要依赖复制到对应目录下。

windeployqt name.exe

 

1.2 使用Dependency Walker修复缺失dll

直接运行exe文件,若无报错可跳过此步,若报错,先根据提示找到对应dll复制到目录下,如果加载了第三方库如OpenVC,可运行Dependency Walker,打开exe文件,查看依赖。

 

1.3 使用Inno Setup生成安装程序

(1)确保可以直接运行exe文件后,打开Inno Setup,使用向导创建脚本。

(2)设置程序信息

(3)配置应用程序

  • 导入应用程序(Browse):选择对应exe文件
  • 添加文件(Add files):导入所有文件
  • 添加文件夹(Add folder):导入所有文件夹及其子文件夹,添加文件时会弹出窗口询问是否包含子文件夹,同时若添加文件夹需要对脚本进行修改

(4)快捷方式配置,根据需求设置,可采用默认

( 5)安装配置,根据需求设置,可采用默认

(6)修改脚本

默认情况下,添加文件夹中的内容安装后会放置在与程序同级目录下,若需要保持原本的目录架构,需要修改包含文件夹相关的脚本,在"{app}"中添加文件夹的名字"{app}\fileName"

(7)编译生成安装包,完成后可保存脚本用于程序修改后重新打包

 

二、Ubuntu

2.1 程序编译打包

  1. 使用Release版本编译程序
  2. 新建文件夹test,并将执行文件(test)移动到空白文件夹中
  3. 执行打包脚本pack.sh

pask.sh脚本内容

#!/bin/sh    
exe="test" #程序名称  
des="<dir>/test" #程序所在目录  
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')    
cp $deplist $des  

给予权限

sudo chmod 777 pack.sh

执行 

./pack.sh

2.2 生成执行文件

在同级目录下编写执行脚本test.sh,脚本名字要与执行文件名字一致,内容如下

#!/bin/sh  
appname=`basename $0 | sed s,\.sh$,,`  
      
dirname=`dirname $0`  
tmp="${dirname#?}"  
      
if [ "${dirname%$tmp}" != "/" ]; then  
dirname=$PWD/$dirname  
fi  
LD_LIBRARY_PATH=$dirname  
export LD_LIBRARY_PATH  
$dirname/$appname "$@"  

给予权限

chmod +x test.sh

执行

./test.sh

注意:执行程序时,运行的是脚本而不是执行文件

 

参考

https://blog.csdn.net/qq_20161893/article/details/72886994

https://www.cnblogs.com/wanghuixi/p/8621853.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值