[QT开发][求助]开发的程序在ubuntu上运行需要附带那些动态库
Tofloor
poster avatar
司南
deepin
2018-01-27 04:34
Author
本帖最后由 sinan 于 2018-1-26 20:35 编辑

在deepin开发了一个qt程序,想在ubuntu上运行。
我想的办法是写一个shell,先将动态库的目录地址export到LD_LIBERARY_PATH里,然后再运行可执行程序。
在网上找了个shell提取出程序需要的动态库,居然有43个动态库共计56M大小!我的release程序也就48.6k。
我想问一下,有没有办法可以让我在 不安装Ubuntu及其他基于Ubuntu的发行版的情况 下得知这些系统里面有哪些库?
这样就不需要携带过多的库了,尤其是  libicudata.so.57( 25M)
Reply Favorite View the author
All Replies
avatar
RucLinux
deepin
2018-01-27 04:46
#1
你编写和编译的是哪个版本的,就让用户安装哪个版本的QT。Linux不是使用用户去解决依赖问题的吗?
Reply View the author
avatar
司南
deepin
2018-01-27 04:54
#2
https://bbs.deepin.org/post/152443
你编写和编译的是哪个版本的,就让用户安装哪个版本的QT。Linux不是使用用户去解决依赖问题的吗? ...

就是想试试这个,APPimage就是这个思路,不过我不会APPimage的打包方法。

不要以为一部人就可以代表整个群体,一个人只能代表他自己。
Reply View the author
avatar
RucLinux
deepin
2018-01-27 04:58
#3
https://bbs.deepin.org/post/152443
就是想试试这个,APPimage就是这个思路,不过我不会APPimage的打包方法。

不要以为一部人就可以代表整个 ...

那么最好的方法就是一键安装脚本,写个脚本,然后将所依赖的库文件放到服务器上. 要么就像一些开源软件一样,将所有源文件打包,提供给用户configure
Reply View the author
avatar
司南
deepin
2018-01-27 05:29
#4
https://bbs.deepin.org/post/152443
那么最好的方法就是一键安装脚本,写个脚本,然后将所依赖的库文件放到服务器上. 要么就像一些开源软件一 ...

感谢帮忙

我找到了Ubuntu的软件检索网站https://packages.ubuntu.com/
那些超过1M的运行库都可以找到。
我再找找其他发型版有没有类似的网站。

Reply View the author
avatar
RucLinux
deepin
2018-01-27 06:51
#5
https://bbs.deepin.org/post/152443
感谢帮忙

我找到了Ubuntu的软件检索网站https://packages.ubuntu.com/

为你的开发态度点赞,这里要批评一下deepin的攻城狮,那个网易云音乐客户端要我折腾N久。
Reply View the author
avatar
wangyong
deepin
2018-01-27 06:58
#6
https://bbs.deepin.org/post/152443
为你的开发态度点赞,这里要批评一下deepin的攻城狮,那个网易云音乐客户端要我折腾N久。 ...

叫你们不用deepin, 折腾死你们,哈哈哈
Reply View the author
avatar
comzhong
deepin
2018-01-27 07:05
#7
本帖最后由 comzhong 于 2018-1-26 23:12 编辑

去它的仓库看看下载Qt运行库看看是哪个版本,然后就安装哪个版本的 Qt 来编译。
比如 Ubuntu 17.10 看这个包依赖
http://mirrors.163.com/ubuntu/po ... 7-0ubuntu3_i386.deb

Package: qtubuntu-desktop
Source: qtubuntu
Version: 0.64+17.10.20170707-0ubuntu3

Depends: libc6 (>= 2.4), libegl1-mesa (>= 7.8.1) | libegl1-x11, libfontconfig1 (>= 2.11.94), libfreetype6 (>= 2.6), libgcc1 (>= 1:4.2), libgl1-mesa-glx | libgl1, libglib2.0-0 (>= 2.12.0), libmirclient9 (>= 0.27.0+17.10.20170630),  libqt5core5a (>=5.9.0~beta), libqt5dbus5 (>= 5.0.2), libqt5gui5 (>= 5.9.0), libstdc++6 (>= 5), libxkbcommon0 (>= 0.5.0), qtbase-abi-5-9-0

下载 qt 5.9 安装编译源码
http://download.qt.io/official_releases/qt/
Reply View the author
avatar
司南
deepin
2018-01-27 07:17
#8
https://bbs.deepin.org/post/152443
去它的仓库看看下载Qt运行库看看是哪个版本,然后就安装哪个版本的 Qt 来编译。
比如 Ubuntu 17.10 看这个 ...

那么这个方法是不是也得需要Ubuntu上也安装Qt呢?
还有一件事,是不是只要在LD_LIBRARY_PATH里加入含有libQt5xxx.so的一大堆动态库的目录就可以运行程序了呢?
Reply View the author
avatar
comzhong
deepin
2018-01-27 07:29
#9
本帖最后由 comzhong 于 2018-1-26 23:30 编辑
https://bbs.deepin.org/post/152443
那么这个方法是不是也得需要Ubuntu上也安装Qt呢?
还有一件事,是不是只要在LD_LIBRARY_PATH里加入含有li ...

用目标系统相同版本的 Qt 编译就不需要带 Qt 库了,直接安装仓库的 Qt 库。

自带  Qt 库打包绿色发行版可以参考这个
https://bbs.deepin.org/post/142466
Reply View the author
avatar
司南
deepin
2018-01-27 07:55
#10
https://bbs.deepin.org/post/152443
用目标系统相同版本的 Qt 编译就不需要带 Qt 库了,直接安装仓库的 Qt 库。

自带  Qt 库打包绿色发行版可 ...

感谢帮忙
Reply View the author
avatar
RucLinux
deepin
2018-01-27 07:55
#11
https://bbs.deepin.org/post/152443
叫你们不用deepin, 折腾死你们,哈哈哈

先放一段时间,过一段时间再折腾,看到时候是不是突来灵感,问题就解决了。
Reply View the author
avatar
RucLinux
deepin
2018-01-27 07:57
#12
https://bbs.deepin.org/post/152443
用目标系统相同版本的 Qt 编译就不需要带 Qt 库了,直接安装仓库的 Qt 库。

自带  Qt 库打包绿色发行版可 ...

那这样他要编译的版本太多了。基本上fedora和ubuntu的版本更新非常频繁,依赖组件的升级也频繁。
Reply View the author
avatar
司南
deepin
2018-01-27 08:06
#13
https://bbs.deepin.org/post/152443
那这样他要编译的版本太多了。基本上fedora和ubuntu的版本更新非常频繁,依赖组件的升级也频繁。 ...

只要依赖的运行库收集的全,应该可以运行在大多数发行版上吧。
Reply View the author
avatar
wtz
deepin
2018-01-27 14:05
#14
Qt 5 以后的动态库都不是二进制兼容的。所以如果想要跨发行版,至少得保证编译时的次版本号相同(比如你编译时用的Qt5.9,那Ubuntu上至少也要有Qt5.9)。
否则就得带上一大堆依赖,这个对于小程序来说是不现实的。
感兴趣的话可以研究一下flatpak。
Reply View the author
avatar
RucLinux
deepin
2018-01-27 14:50
#15
https://bbs.deepin.org/post/152443
Qt 5 以后的动态库都不是二进制兼容的。所以如果想要跨发行版,至少得保证编译时的次版本号相同(比如你编 ...

flatpak能跨离gcc、glibc、Qt5等核心依赖? 那deepin网易云音乐能不能以flatpak打包?
Reply View the author
avatar
司南
deepin
2018-01-27 16:26
#16
https://bbs.deepin.org/post/152443
Qt 5 以后的动态库都不是二进制兼容的。所以如果想要跨发行版,至少得保证编译时的次版本号相同(比如你编 ...

感谢,以后一定研究一下如何跨平台打包发行。
Reply View the author
avatar
wtz
deepin
2018-01-27 23:59
#17
https://bbs.deepin.org/post/152443
flatpak能跨离gcc、glibc、Qt5等核心依赖? 那deepin网易云音乐能不能以flatpak打包? ...

只要有runtime就可以。目前deepin的runtime包含了glibc和qt5,但还不包括qcef,所以无法用于网易云音乐。
Reply View the author
avatar
leixiaozeng
deepin
2018-01-28 00:37
#18
https://bbs.deepin.org/post/152443
叫你们不用deepin, 折腾死你们,哈哈哈

说老实话很想用,但没办法。。
Reply View the author