Linux —— linuxdeployqt源码编译与打包(含出错解决)

本文介绍了如何在Linux上编译和打包linuxdeployqt,包括安装依赖、配置Qt环境变量、源码克隆与编译,以及解决打包过程中遇到的错误,如ldd找不到库的问题。通过这个过程,可以解决官方预编译版本不支持高系统版本的限制。
简介

     在windows上有windeployqt程序,linux上有linuxdeployqt可以帮助我们快速打包。

     官方有放出编译好的包,但是由于其支持版本极少。在使用中会提示:系统版本过高。因此还是选择编译代码的方式。


编译

     
     1、安装patchelf、cmake

sudo apt install patchelf
sudo apt install cmake

     
     2、配置Qt环境变量

          将下面代码写入/etc/profile内。完毕后输入"source /etc/profile"进行生效。

export PATH=/home/jxd/Qt5.12.8/5.12.8/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/jxd/Qt5.12.8/5.12.8/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/jxd/Qt5.12.8/5.12.8/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/jxd/Qt5.12.8/5.12.8/gcc_64/qml:$QML2_IMPORT_PATH

     
     3、下载 linuxdeployqt源码

          终端输入指令:git clone https://github.com/probonopd/linuxdeployqt.git
     

     4、将tools/linuxdeployqt/main.cpp中的下述代码注释掉:

// openSUSE Leap 15.0 uses glibc 2.26 and is used on OBS		
/*
	if (strverscmp (glcv, "2.27") >= 0) {    //注释版本检查
    qInfo() << "ERROR: The host system is too new.";
    qInfo() << "Please run on a system with a glibc version no newer than what comes with the oldest";
    qInfo() << "currently still-supported mainstream distribution (xenial), which is glibc 2.23.";
    qInfo() << "This is so that the resulting bundle will work on most still-supported Linux distributions.";
    qInfo() << "For more information, please see";
    qInfo() << "https://github.com/probonopd/linuxdeployqt/issues/340";
    return 1;
}*/

     
     5、编译

1、在主linuxdeployqt目录下输入:
	cmake CMakeLists.txt

2、上述执行完毕后再输入:
	make

3、生成linuxdeployqt,具体生成路径在:
	xxx/linuxdeployqt/tools/linuxdeployqt

4、将可执行文件linuxdeployqt拷贝到/usr/local/bin,方便使用
	cp linuxdeployqt /usr/local/bin

打包

打包Qt生成的release程序,名为xx:

执行命令
	linuxdeployqt xxx -appimage

执行命令后会提示ico和desktop没有,但不影响。可以看到已经打包ok了。

如下图,由一个untitled文件生成了很多文件。那么AppRun与untitled均可执行运行。

在这里插入图片描述

注意出错

     下图为本人在ubuntu下打包Qt调用OpenCv的程序出错,提示为ldd没有找到opencv库没,将opencv库目录加入环境变量后即可完成。(另外若环境变量中已存在该opencv库路径,那么说明设置的环境变量为临时的需要执行生效指令;或为opencv库配置开机即时生效的环境变量即可。)

在这里插入图片描述

关注

笔者 - jxd

微信公众号搜索 “码农总动员” 或 微信扫描下方二维码,了解更多你不知道的XX,O(∩_∩)O

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信必诺

嗨,支持下哥们呗。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值