返回顶部
首页 > 资讯 > 操作系统 >解决Ubuntu下使用linuxdeployqt打包Qt程序问题
  • 431
分享到

解决Ubuntu下使用linuxdeployqt打包Qt程序问题

ubuntulinuxdeployqt打包Qt程序 2022-06-04 22:06:03 431人浏览 独家记忆
摘要

写了点Qt界面程序,然而发现很难移植到其他没有安mGzxJ装Qt环境的电脑上运行。查资料了解到,在windows上有windowsdeployqt程序,linux上有linuxdeployqt可以帮助我们快速打包。 1.

写了点Qt界面程序,然而发现很难移植到其他没有安mGzxJ装Qt环境的电脑上运行。查资料了解到,在windows上有windowsdeployqt程序,linux上有linuxdeployqt可以帮助我们快速打包。

1. 配置Qt环境

首先,我们先把Qt环境配置好,在~/.bashrc中加入:


export PATH=/home/xl/Qt5.9.2/5.9.2/GCc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/xl/Qt5.9.2/5.9.2/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/xl/Qt5.9.2/5.9.2/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/xl/Qt5.9.2/5.9.2/gcc_64/qml:$QML2_IMPORT_PATH

其中/home/xl/Qt5.9.2/5.9.2/目录要根据自己电脑上安装的Qt路径进行修改。

 然后执行sourec ~/.bashrc使配置生效。

2. 编译linuxdeployqt

项目地址: https://GitHub.com/probonopd/linuxdeployqt.git

 虽然有放出编译好的包,但是由于我使用的是ubuntu18, 系统版本过高,因此还是选择编译代码的方式。

 为了避免编译好的包运行时检测到我们的系统版本过高,不继续执行的问题,我们编译前,将tools/linuxdeployqt/main.cpp中的下述代码注释掉:


// openSUSE Leap 15.0 uses glibc 2.26 and is used on OBS
    

然后就可以使用cmake和make进行编译。生成好的可执行程序是tools/linuxdeployqt/linuxdeployqt

 最后为了方便使用,可以将生成的可执行程序拷贝到系统的/usr/local/bin/目录。

3. 打包

将Qt编译的好的程序拷贝到一个单独的文件夹中。

 然后执行linuxdeployqt appname.

一般情况下会很顺利的完成,当前目录下会有个Apprun,直接执行它就可以。

 但是有时候并不是那么顺利,应该是系统中还缺少相应的库。比如,我遇到的错误是:


ERROR: Could not start patchelf.
ERROR: Make sure it is installed on your $PATH.
ERROR: Error reading rpath with patchelf "libQt5Widgets.so" : ""
ERROR: Error reading rpath with patchelf "libQt5Widgets.so" : ""

这个错误是表明缺少需要的pathchelf工具,直接安装即可解决:

sudo apt install patchelf

然后又出现了下面这个错误:

ERROR: ldd outputLine: "libjasper.so.1 => not found"
ERROR: for binary: "/home/xl/Qt5.9.2/5.9.2/gcc_64/plugins/imagefORMats/libqjp2.so"
ERROR: Please ensure that all libraries can be found by ldd. Aborting.

这表明我们系统中是缺少了libqjp2.so这个库的。其实很奇怪,本地明明是已经可以跑起来了,为什么还缺少这个库文件。但是解决方法很简单,缺什么就装什么:


sudo add-apt-repository "deb Http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

安装完成之后,就顺利打包了。

总结

以上所述是小编给大家介绍的解决Ubuntu下使用linuxdeployqt打包Qt程序问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

--结束END--

本文标题: 解决Ubuntu下使用linuxdeployqt打包Qt程序问题

本文链接: https://lsjlt.com/news/20419.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 解决Ubuntu下使用linuxdeployqt打包Qt程序问题
    写了点Qt界面程序,然而发现很难移植到其他没有安mGzxJ装Qt环境的电脑上运行。查资料了解到,在windows上有windowsdeployqt程序,linux上有linuxdeployqt可以帮助我们快速打包。 1....
    99+
    2022-06-04
    ubuntu linuxdeployqt 打包Qt程序
  • 完美解决Qt中关于Mysql程序的连接、打包等各类问题
    分享Qt如何连接Mysql、如何打包Mysql程序,完美解决连接和打包Mysql程序所出现的各类问题。        在Qt项目开发过程中,如果涉及到数据的存储,那么肯定会用到数据库,本篇文章以Mysql数据库为例,讲述Qt如何连接Mysq...
    99+
    2023-09-14
    mysql 数据库 qt
  • 解决maven打包失败:程序包xxxx不存在问题
    目录1.问题实质2.问题原因3.解决步骤解决方案1解决方案2解决方案3解决方案4用Maven引入本地jar包这种做法非常不合理,很容易导致团队jar包混乱,最好尝试搭建私服解决。 1...
    99+
    2024-04-02
  • 解决pycharm临时打包32位程序的问题
    问题: 64位系统安装了64位的python,打包生成的程序是64位的,在32位系统上不兼容无法运行。 想安装多个python,只临时调用32位python解释器来打包32位程序,不...
    99+
    2024-04-02
  • 解决logback-classic 使用testCompile的打包问题
    logback-classic 使用testCompile的打包 今天使用gradle打包的时候logback-classic一直打包不进去。 打包logback-classic的代...
    99+
    2024-04-02
  • 如何解决maven打包失败:程序包xxxx不存在问题
    这篇文章主要介绍了如何解决maven打包失败:程序包xxxx不存在问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用Maven引入本地jar包这种做法非常不合理,很容易导致...
    99+
    2023-06-29
  • 打包FlaskAdmin程序时关于static路径问题的解决
    1、pyinstaller的使用 网上资料多,此处省略 2、打包时报错 1、可能有些包没有安装(跑跑程序不缺库就行) 2、有些包pyinstaller找不到? 打包时手动添加 --...
    99+
    2024-04-02
  • ubuntu下网页打开慢的问题怎么解决
    这篇文章主要讲解了“ubuntu下网页打开慢的问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ubuntu下网页打开慢的问题怎么解决”吧!安装 pdnsd已经加入源里了,安装非常简...
    99+
    2023-06-13
  • 如何解决logback-classic使用testCompile的打包问题
    本篇内容介绍了“如何解决logback-classic使用testCompile的打包问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!lo...
    99+
    2023-06-20
  • 解决maven仓库无法自动下载程序包的问题
    在调试idea项目报错:未解析的依赖项:de.fhpotsdam:unfolding:jar:0.9.6 问题描述解决方法总结 问题描述 在调试idea项目时报如上所示错误,并尝试了网上所说的更改maven仓库为阿里云仓库等...
    99+
    2023-08-30
    maven java intellij-idea
  • Qt如何使用windeployqt工具实现程序打包发布
    这篇文章主要介绍了Qt如何使用windeployqt工具实现程序打包发布,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Qt 官方开发环境使用的动态链接库方式,在发布生成的ex...
    99+
    2023-06-25
  • Qt使用windeployqt工具实现程序打包发布方法
    目录1. Qt Widgets Application 2.Qt Quick ApplicationQt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 ...
    99+
    2024-04-02
  • 使用Gradle打依赖包失败的问题及解决
    目录使用Gradle打依赖包失败经过测试后发现应用场景Gradle不能加载依赖包的处理总结使用Gradle打依赖包失败 以前在使用Maven开发java web的项目中,我们通常会用...
    99+
    2023-05-15
    使用Gradle Gradle打依赖包失败 Gradle依赖
  • Android studio 下的APK打包失败问题解决办法
    Android studio 下的APK打包失败问题解决办法今天遇到了一个奇怪的问题,本来在Android studio 1.4上运行的好好的程序,到了我更新完的Android studio 2.1上就打包失败了,但是用调试机直接运行则没问...
    99+
    2023-05-31
    android studio apk打包
  • Unix 下的 Go 打包:如何解决常见的问题?
    在Unix系统下使用Go语言进行打包是一个非常常见的任务。然而,由于不同的Unix系统之间存在差异,可能会遇到一些常见的问题。本文将介绍如何解决这些问题,同时演示一些代码。 一、Go打包的基本知识 在开始介绍常见问题之前,我们需要先了解一些...
    99+
    2023-08-16
    打包 load unix
  • 解决在IDEA下使用JUnit的问题(解决过程)
    遇到的问题 我在做这次软件构造实验一时,实验中要求了需要使用JUnit来进行代码的实例测试,可是在经过了百度了其他人的使用JUnit的介绍方法,然后自己去尝试,却始终无法成功调用JU...
    99+
    2024-04-02
  • Python程序的轻量化打包及模块缺失问题的解决
    摘要 采用Pyinstalle插件对python编写好的程序打包成exe文件,一般有两种方式:一直直接采用当前的编写环境打包,这种方式一般不会出错,但由于将整体环境打包,导致将程序不需要的插件也包含在内,导致打包后的软件很大,打开也比较慢,...
    99+
    2023-09-03
    python
  • slf4j java: 程序包org.slf4j不存在问题解决
    问题描述: Error:(17, 1) java: 程序包org.slf4j不存在 问题分析: 本来就集成了日志依赖,后面添加了一个新的maven依赖,导致lombok.extern.slf4j.@Slf4j注解有问题。 解决办法:手动引入...
    99+
    2023-08-31
    java mybatis maven
  • 解决import包时报 Java 程序包不存在的问题
    目录1. 执行Maven ->reload project2. 执行 Invalidate and Restart3. 统一编码4. 重新编译5. 设置idea自动加载jar包...
    99+
    2024-04-02
  • 解决linux下使用python打开terminal时报错的问题
    目录linux下使用python打开terminal时报错补充:pycharm 运行没问题但是 terminal(终端)运行却各种 module 问题问题描述总结linux下使用py...
    99+
    2023-03-14
    python打开terminal报错 linux python打开terminal报错
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作