文章目录

  • 1.linuxdeployqt源码编译
    • 下载linuxdeployqt源码包,6版本的
    • 执行下面的步骤
    • 遇到报错 对‘ucal_clone_56’未定义的引用
  • 2. 解决依赖
    • linuxdeployqt package -appimage
    • 报错 ERROR: Could not start patchelf
    • 报错 sh: 1: appimagetool: not found
    • 运行 linuxdeployqt package

1.linuxdeployqt源码编译

下载linuxdeployqt源码包,6版本的

~$ git clone -b 6 https://gitee.com/yangfanimb/linuxdeployqt.git
正克隆到 'linuxdeployqt'...
remote: Enumerating objects: 2542, done.
remote: Counting objects: 100% (2542/2542), done.
remote: Compressing objects: 100% (1091/1091), done.
remote: Total 2542 (delta 1438), reused 2542 (delta 1438), pack-reused 0
接收对象中: 100% (2542/2542), 761.15 KiB | 369.00 KiB/s, 完成.
处理 delta 中: 100% (1438/1438), 完成.
检查连接... 完成。
Note: checking out '37631e5640d8f7c31182fa72b31266bbdf6939fc'.You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:git checkout -b <new-branch-name>

执行下面的步骤

sudo apt-get -y install git g++ libgl1-mesa-dev//export PATH=$(readlink -f /tmp/.mount_QtCreator-*-x86_64/*/gcc_64/bin/):$PATH
export PATH=$(readlink -f /home/tlx/Qt5.9.9/5.9.9/gcc_64/bin/):$PATH
cd linuxdeployqt
qmake
make

遇到报错 对‘ucal_clone_56’未定义的引用

/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘ucal_clone_56’未定义的引用
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘ucnv_close_56’未定义的引用
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘ucol_setAttribute_56’未定义的引用
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘ucnv_setSubstChars_56’未定义的引用
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘ucal_close_56’未定义的引用
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘ucal_openTimeZoneIDEnumeration_56’未定义的引用
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘ucnv_fromUnicode_56’未定义的引用
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘uenum_close_56’未定义的引用
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘ucnv_getDefaultName_56’未定义的引用
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘ucal_inDaylightTime_56’未定义的引用
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5Core.so:对‘ucnv_compareNames_56’未定义的引用
...

解决

~/linuxdeployqt$ export LD_LIBRARY_PATH=/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/

可以将上述两个环境变量写进/etc/profile中

export PATH=$(readlink -f /home/tlx/Qt5.9.9/5.9.9/gcc_64/bin/):$PATH
export LD_LIBRARY_PATH="/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/:$LD_LIBRARY_PATH"

参考:BUILDING.md
QT5引用库出错即解决

以上是工具的源码编译,下面使用工具进行依赖解决

2. 解决依赖

linuxdeployqt package -appimage

输出

linuxdeployqt 6 (commit 37631e5), build <local dev build> built on 2021-03-19 06:36:30 UTC
Not using FHS-like mode
app-binary: "/home/tlx/test/build-package-Desktop_Qt_5_9_9_GCC_64bit-Debug/package"
appDirPath: "/home/tlx/test/build-package-Desktop_Qt_5_9_9_GCC_64bit-Debug"
relativeBinPath: "package"
ERROR: Desktop file missing, creating a default one (you will probably want to edit it)
ERROR: Icon file missing, creating a default one (you will probably want to edit it)
ERROR: ldd outputLine: "/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5WebEngineWidgets.so.5: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.9' not found (required by /home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5WebEngineWidgets.so.5)"
ERROR: for binary: "/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib/libQt5WebEngineWidgets.so.5"
ERROR: Please ensure that all libraries can be found by ldd. Aborting.

可以看到需要生成桌面文件,图片,没有生成默认的,最重要的是还有依赖找不到,下面就解决这个吧。 到相应的目录下去查看,发现这些文件其实都是有的,只有一个异常

tlx@TLX001:~/test/build-package-Desktop_Qt_5_9_9_GCC_64bit-Debug$ ll /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
lrwxrwxrwx 1 root root 19 2月  23 17:46 /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 -> libQt5Core.so.5.6.1

我的版本是5.9.9,所以这里不对,怎么办,找到一个思路,参考:ubuntu更改qmake版本
,感谢这位博主,我的机器的具体目录是在:

sudo vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

将文件中的qt4内容删除,写入qt5的内容如下:

/home/tlx/Qt5.9.9/5.9.9/gcc_64/bin
/home/tlx/Qt5.9.9/5.9.9/gcc_64/lib

再次运行linuxdeployqt package -appimage

报错 ERROR: Could not start patchelf

$ linuxdeployqt package -appimage
linuxdeployqt 6 (commit 37631e5), build <local dev build> built on 2021-03-19 06:36:30 UTC
Not using FHS-like mode
app-binary: "/home/tlx/test/build-package-Desktop_Qt_5_9_9_GCC_64bit-Debug/package"
appDirPath: "/home/tlx/test/build-package-Desktop_Qt_5_9_9_GCC_64bit-Debug"
relativeBinPath: "package"
Keeping existing AppRun
ERROR: Could not start patchelf.
ERROR: Make sure it is installed on your $PATH.
ERROR: Error reading rpath with patchelf "libQt5WebEngineWidgets.so" : ""
ERROR: Error reading rpath with patchelf "libQt5WebEngineWidgets.so" : ""

解决:

$ sudo apt-get install -y patchelf
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:aptdaemon aptdaemon-data python-pwquality python3-aptdaemon python3-aptdaemon.gtk3widgets python3-defer
使用'sudo apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:patchelf
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 43 个软件包未被升级。
需要下载 45.4 kB 的归档。
解压缩后会消耗 126 kB 的额外空间。
获取:1 http://archive.kylinos.cn/kylin/KYLIN-ALL 10.0/universe amd64 patchelf amd64 0.9-1~kord16.04.3 [45.4 kB]
已下载 45.4 kB,耗时 0秒 (249 kB/s)
正在选中未选择的软件包 patchelf。
(正在读取数据库 ... 系统当前共安装有 231345 个文件和目录。)
正准备解包 .../patchelf_0.9-1~kord16.04.3_amd64.deb  ...
正在解包 patchelf (0.9-1~kord16.04.3) ...
正在处理用于 man-db (2.7.5-1kord) 的触发器 ...
正在设置 patchelf (0.9-1~kord16.04.3) ...

继续运行linuxdeployqt package -appimage

报错 sh: 1: appimagetool: not found

appimagetool这又是个什么,查询发现,就是为了将软件打成一个整体包,可以到处使用,参考:什么是AppImage
个人认为,这个参数可以不加,在无影响

运行 linuxdeployqt package

完美通过!

参考:Ubuntu下使用linuxdeployat打包发布免安装的Qt程序
linux-ubuntu下使用linuxdeployqt+appimagetool将qt程序打包成xxx.AppImage文件

KylinV10上qt5.9开发应用打包步骤(四)--linuxdeployqt源码编译相关推荐

  1. 安装centos7步骤_Centos7下源码编译安装mysql5.7 详细步骤 小白也能安装

    .清理安装环境: # yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y # userdel -r mysql # rm -r ...

  2. Atlas 2.2.0源码编译及安装步骤

    Atlas 2.2.0源码编译及安装步骤 一.源码编译 1. 下载源码 2. 前置环境安装 3. 修改版本号 4. 修改源码中 atlas与kafka版本兼容问题 5. 开始编译 6. 问题锦集 二. ...

  3. 在龙芯3a5000处理器上进行qt-5.11.3源码编译流程与遇到的问题

    1.环境说明 处理器:Loongson-3A5000M 统信桌面操作系统 Linux 注意网上很多帖写的都是适用于龙芯3a4000的,龙芯3a4000指令集是mips,龙芯3a5000指令集为Loon ...

  4. 【java】本地客户端内嵌浏览器3 - Swing 使用 Spring 框架 + 打包项目 + 转exe + 源码

    目录 ★☆★ 写在前面 ★☆★ ★☆★ 本系列文章 ★☆★ ★☆★ 开源网址 ★☆★ 一.给 Swing 加上 Spring 0.前期努力 I. SpringBoot II. SpringMVC 1. ...

  5. 如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文主要介绍如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib. OpenC ...

  6. 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )

    文章目录 I . 源码编译配置 II . 构建脚本配置 III . NDK 函数库打包配置 IV . Java 与 C 代码示例 V . CMake 配置 ( CMakeLists.txt ) VI ...

  7. 基于Qt5.14.2和mingw的Qt源码学习(三) — 元对象系统简介及moc工具是如何保存类属性和方法的

    基于Qt5.14.2和mingw的Qt源码学习(三) - 元对象系统简介及moc工具是如何保存类属性和方法的 一.什么是元对象系统 1.元对象系统目的 2.实现元对象系统的关键 3.元对象系统的其他一 ...

  8. Linux下imx6dl开发板从镜像的烧写、内核源码编译到第一个驱动运行的详细步骤

    文章目录 前言 一.对开发板烧写镜像 1.镜像烧写 2.串口测试 二.搭建交叉编译环境 1.Ubuntu下搭建交叉编译环境 2.WSL下搭建交叉编译环境 三.编译Linux内核源码 1.Ubuntu下 ...

  9. 打包跳过编译_Apache Flink v1.9-SNAPSHOT 源码编译

    Apache Flink v1.9-SNAPSHOT 源码编译 下载源码 Flink 源码可以从官方 github repository上下载. git clone https://github.co ...

最新文章

  1. 学自动化必知:20个传感器原理及应用动图
  2. pyhton中的魔术方法
  3. 第2章 Python 数字图像处理(DIP) --数字图像基础4 -- 像素间的一些基本关系 - 邻域 - 距离测试
  4. unity中怎么做河流_【干货】工作中怎么做工业设计的?(一)
  5. 17.3.12---urlparse模块的URL下载
  6. 张开双臂迎接“云时代“的到来
  7. SpringMVC的简要介绍和表单参数的接收和时间参数的转换
  8. 关于数据型驱动自动化测试实现
  9. html文件执行php语句
  10. 关于Merge的整理--AndroidScreenSlidePager开源库中用到的
  11. 3.Docker技术入门与实战 --- 使用Docker镜像
  12. 2阶魔方矩阵matlab,matlab魔方矩阵
  13. 电动汽车充电解决方案领导品牌智充科技获壳牌资本投资;安百拓完成收购测井服务公司Kinetic | 能动...
  14. 电脑能登录QQ和微信,但是打不开网页浏览器
  15. 我在知乎上关于Laser200/310电脑的文章。
  16. WIPE与Format的种种神马情况
  17. oeasy 教您玩转 linux 010400 总结 summary
  18. 云麦体脂秤华为体脂秤_如果是一个真正的体脂秤就好了:华为智能体脂秤
  19. Python3,Pandas 5行代码实现对excel 读写操作
  20. Cannot unpack file C:\Users\ADMINI~1\AppData\Local\Temp\pip-ilsapnxq-unpack\simple.htm

热门文章

  1. OAException Application FND Message Name FND NO DATABASE
  2. Stopping service [Tomcat]和Disconnected from the target VM排查
  3. mathmatica使用入门
  4. Postek博思得打印机
  5. nacos配置中心[NACOS HTTP-GET] The maximum number of tolerable server reconnection errors has been reache
  6. Excel如何在同一单元格内同时添加公式和字符?
  7. ThingsBoard CE添加数据导出excel功能
  8. 【实例】VBA excel 隔行插入行与列
  9. 使用vuepress-reco主题创建博客
  10. Deepin系统标题栏及其按钮美化