Linux系统中打包发布Qt程序

1 篇文章 0 订阅

简述
Qt应用程序在windows下有一个自带的小程序(windeployqt)可以用来打包;Linux系统下可以手写一个脚本文件,充分利用ldd命令进行打包。

实现
废话不说,步骤如下:

QtCreator使用Release版本进行编译,并将编译后生成的可执行程序(MyApp)复制到一个空目录下。
在这个空目录下新建一个文件(pack.sh),文件内容如下:
 

#!/bin/sh
exe="MyApp" #需发布的程序名称
des="NewDir" #步骤一中新建目录的完整路径
deplist=$(ldd $exe|awk '{if (match($3,"/")){printf("%s "),$3}}')
cp $deplist $des
  1. 运行这个pack.sh文件(./pack.sh)即可完成打包。
  2. 为了方便部署程序,如添加环境变量、创建桌面快捷方式等,可以在此目录下新建一个sh文件,文件名必须与可执行文件名字相同。此文件内容如下:
#!/bin/sh
appname=`basename $0|sed s,\.sh$,,`
dirname=`dirname $0`   #注意appname与dirname内容外面并不是单引号,而是撇号,笔者曾因此花费大量时间
tmp="${dirname#?}"
if[ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"

赋予上述sh文件执行权限:
chmod +x xxx.sh
执行程序时运行这个sh文件即可。
扩展
环境变量的部署,只需要在上面第4步中的sh文件中添加命令即可;
桌面快捷方式的实现,只需要拷贝第4步的sh文件到桌面,增加一个进入目录的语句即可;
如果拷贝到无Qt环境的主机上运行,还需注意ldd命令没有拷贝的环境库,也就是platforms文件夹及两个链接文件。可见文章【https://blog.csdn.net/lusanshui/article/details/84988017 】

报错:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180

解决办法一句话:命令行运行:

export QTWEBENGINE_DISABLE_SANDBOX=1

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Linux系统下,有两种常用的方法可以打包QT程序。 第一种方法是通过脚本进行打包。这种方法简单方便,但是打包程序不能在其他干净的Linux系统运行。你可以参考提到的方法,编写一个脚本文件来进行打包。具体步骤如下: 1. 首先,确保你已经安装了所需的依赖库。你可以使用ldd命令来查找程序所需的共享库。 2. 创建一个脚本文件,可以使用任何你熟悉的文本编辑器。在脚本文件,你需要指定程序的入口点以及程序所需的共享库路径。 3. 接下来,使用chmod命令给脚本文件添加可执行权限。 4. 最后,运行脚本文件来进行打包打包完成后,你会得到一个包含可执行文件和所需共享库的目录。 但需要注意的是,通过这种方式打包QT程序不能在其他干净的Linux系统运行,所以不太推荐使用。 第二种方法是使用linuxdeployqt工具进行打包。这个工具可以方便地将QT程序打包成一个独立的可执行文件,可以在任何Linux环境直接运行。你可以从提供的链接下载linuxdeployqt。 使用linuxdeployqt进行打包的步骤如下: 1. 首先,下载并解压linuxdeployqt工具。 2. 将你的QT程序复制到linuxdeployqt的目录。 3. 打开终端,并切换到linuxdeployqt的目录。 4. 运行以下命令来打包程序: ``` ./linuxdeployqt <path_to_your_qt_program> -appimage ``` 其,`<path_to_your_qt_program>`是你的QT程序的路径。 5. 打包完成后,你将得到一个AppImage文件,这个文件就是你的打包好的程序。 通过使用linuxdeployqt工具进行打包,你可以得到一个可以在任何Linux环境直接运行的QT程序。这种方法更加方便和可靠,推荐使用。 参考文献: 目前我接触到的Linux下的QT程序打包方法主要有两种:第一种:通过脚本进行打包,这种方法简单方便,但是通过这种方式打包QT程序,并不能放到另一台干净的Linux系统下运行,所以不太推荐;第二种:通过Linuxdeployqt进行打包,通过这种方法打包QT程序也很方便,而且打包程序可以放到任何Linux环境下直接运行。下面我将详细介绍以下两种打包方式,大家可以根据自己的实际使用情况任意选择打包方式。 1.下载linuxdeployqt:https://github.com/probonopd/linuxdeployqt/releases

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值