文档章节

Qt程序发行Linux版,软件打包知识

lieefu
 lieefu
发布于 2016/10/11 10:51
字数 412
阅读 265
收藏 0

patchelf 工具可以修改已编译运行程序的依赖库位置和指定库链接器

patchelf --set-rpath

patchelf --set-interpreter

通过这个工具 https://github.com/probonopd/linuxdeployqt 如果自己编译不了,也可以下载现成的

 https://github.com/probonopd/linuxdeployqt/releases

运行 ./linuxdeployqt-2-x86_64.AppImage ShanbayDict  并为成功,生成的 lib目录下的so文件很少。

运行 ./linuxdeployqt-2-x86_64.AppImage ShanbayDict -appimage   也未成功,但lib生成了很多so文件

使用 patchelf --set-rpath /opt/Qt-5.7-static/lib/:./lib ShanbayDict 修改 rpath后,ShanbayDict可以独立运行了,连同lib一起拷贝到新安装的Ubuntu 16.04系统中,也能运行了。

ldd ShanbayDict 显示,rpath已经指向 ./lib目录

patchelf可以通过  sudo apt install patchelf 安装

2017年2月24日

Qt 5.8编译的Qt程序

设置环境变量,确认 qmake -v  是自己使用的Qt版本,如果不是,解决办法是:

export PATH=/home/lieefu/Qt5.8.0/5.8/gcc_64/bin:$PATH

创建qml目录,把/home/lieefu/Qt5.8.0/5.8/gcc_64/qml 目录下用到的模块复制过来,我的app用到了三个 QtQuick、QtQuick.2、QtMultimedia。

增加plugin中platforminputcontexts 包括libfcitxplatforminputcontextplugin.so文件,就可以使用搜狗输入法录入汉字了

./linuxdeployqt-continuous-x86_64.AppImage LilyDict -appimage

这个命令要运行两边才行,解决这个bug https://github.com/probonopd/linuxdeployqt/issues/64

The libqxcb.so rpath hadn't been set correctly.
Running patchelf --set-rpath '$ORIGIN/../../lib' plugins/platforms/libqxcb.so

第二遍运行就对xcb库重新设置rpath

2017年3月2日,最新版本的linuxdeployqt-continuous-x86_64.AppImage,不需要运行两边了

 

参考资料:

ELF文件的加载和动态链接过程

http://jzhihui.iteye.com/blog/1447570

http://nixos.org/patchelf.html
https://my.oschina.net/eechen/blog/371643

© 著作权归作者所有

lieefu
粉丝 94
博文 123
码字总数 27290
作品 3
济南
高级程序员
私信 提问
magicErmine 4.1.0 发布

magicErmine 4.1.0 发布,改进包括:newfstatat/fstatat64 系统调用遵循 AT_SYMLINK_NOFOLLOW 标识,修复了打包脚本无法执行的问题;修复了 Qt 5.x 应用打包问题。 magicErmine 允许同一个 ...

oschina
2014/06/04
210
1
八款精美的 Linux 发行版!

导读 在这篇文章中,将会列出让一些令 Linux 用户印象最深刻且精美的 Linux 发行版,包括对初学者友好和流行的发行版。 1. elementary OS elementary OS 是一款基于 Ubuntu 精心打磨美化的桌...

linuxprobe16
2017/10/28
430
0
KaOS 2019.07 稳定版发布,采用 LibreOffice 作为默认 Office 应用

KaOS 2019.07 稳定版已发布,作为一个采用滚动更新的发行版,此版本已将 Plasma Desktop 桌面环境的软件包同步升级至最新版,包括 Frameworks 5.59.0, Plasma 5.16.2 和 KDE Applications 1...

局长
07/06
1K
1
是谁让你的 Linux 平稳运行?感谢封包人吧

那些在为帮助你的Linux平稳运行而在背后默默付出的,就是我们所说的封包人。绝大多数的封包人都是志愿者,他们为了自己深爱的Linux发行版而牺牲了自己的休息时间。 Linux生态系统的日渐昌盛离...

osos
2014/03/22
3.8K
46
哪款Linux发行版是你的最佳选择呢?

想选择最适合你需要的Linux发行版,首先要确定你是属于哪一种类型的Linux用户。 我认为,在桌面上运行Linux的最大优点之一在于,选择多多。Linux爱好者可以享用一系列广泛的桌面环境、文件管...

酱醋茶丶
2015/08/25
163
0

没有更多内容

加载失败,请刷新页面

加载更多

spring boot actuator

actuator 是监控系统健康的工具,引入 spring-boot-starter-actuator会暴露一些endpoint. 可通过如下配置来配置这些endpoint的基本配置: 可通过http:${url}:28081/management/actuator/*来访...

ZH-JSON
19分钟前
3
0
9.特殊权限 软连接 硬链接

6月7日任务 2.18 特殊权限set_uid 2.19 特殊权限set_gid 2.20 特殊权限stick_bit 2.21 软链接文件 2.22 硬连接文件 2.18 特殊权限set_uid 会发现有些文件的前三位并不是rwx而是rws,而s就代表...

oschina130111
30分钟前
2
0
好程序员web前端分享如何自学前端?步骤是什么?

好程序员web前端分享如何自学前端?步骤是什么?简单粗暴直接上学习流程。 1、学习HTML+CSS基础 HTML5新特性和CSS3 这个部分主要是需要记忆的知识点比较多,建议大家在学习的时候多加练习,最...

好程序员官方
31分钟前
3
0
创龙基于TI TMS320C6748定点/浮点DSP C674x + Xilinx Spartan-6 FPGA开发板

TL6748F-EVM是一款基于广州创龙SOM-TL6748F核心板设计的开发板,底板采用沉金无铅工艺2层板设计,它为用户提供了SOM-TL6748F核心板的测试平台,用于快速评估SOM-TL6748F核心板的整体性能。 ...

Tronlong创龙
37分钟前
2
0
8年前诞生于淘宝,细数阿里云RPA 的前世今生

9月10日,踏入55岁的马云正式卸任阿里巴巴董事局主席一职,由阿里巴巴集团CEO张勇接任。公寓创业、西湖论剑、美国敲钟,从成立到登顶中国最值钱的公司,阿里巴巴只用了20年。 阿里云RPA,201...

阿里云官方博客
41分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部