您的位置:首页 > 运维架构 > Linux

linux (ubuntu) Qt 5.9.1 发布程序 转载+个人错误记录

2017-09-27 16:27 681 查看
主要参考这篇文章 http://www.cnblogs.com/oloroso/p/6149000.html 感谢!

本程序开始准备静态编译,但由于包含qwebengine,只能动态编译。

动态编译就要带很多相关库。。。

一般会出现 XCB错误 这是库没找到 或者WebEngineProcess
没找到

后来发现 -rpath 可以指定程序运行时库路径,简直太棒了。

1.修改pro文件

QMAKE_LFLAGS += -Wl,-O1 -Wl,-rpath /opt/runexe/lib (自定义路径)


2.qmake生成makefile


3.发现makefile中LFLAGS = -Wl,-O1 -Wl,-rpath /opt/runexe/lib -Wl,-O1 -Wl,-rpath,/opt/Qt5.9.1/5.9.1/gcc_64/lib -Wl,-rpath-link,/opt/Qt5.9.1/5.9.1/gcc_64/lib

还有一段自动添加默认的rpath,手动去掉,暂时还没解决掉,不知道怎么加上去的默认路径。-rpath-link 上面那篇文章说了,编译时需要的链接库,如果有可以自己重新指定。


4.make  ……等待


5.将qt安装路径 /Qt5.9.1/5.9.1/gcc_64/ 下大部分打包出来  lib中删除la prl 节省空间。还想再节省可以将lib中只保留需要的库。


6.重点部分 在程序运行路径下 创建qt.conf 文件,内容:

[Paths]
Prefix=/opt/runexe (库路径  可以自定义指定)

7.重点部分 如果需要qwebengine  运行时会需要QtWebEngineProcess 一般会提示找不到QtWebEngineProcess,这个文件在libexec中  所以这个也要有

解决办法:

在libexec中创建qt.conf 内容:

[Paths]
Prefix=..
8.

去运行  应该就没有问题了。




2017.12.23 更新

最近重新打包 发现之前的办法有点问题,今天重新整理一下思路,通用打包使用

1.
QMAKE_LFLAGS += -Wl,-O1 -Wl,-rpath /opt/lib (自定义路径) 配置编译及运行时路径
2.编译
3.将依赖库拷贝到1中配置好的路径下。
4.在可执行程序相同路径 
添加qt.conf文件
[Paths]
Prefix=/opt/lib(自定义)
5.将qt安装路径下的plugins拷贝到/opt/lib/下
6.重点:将qt  lib下的 libQt5DBus.so*   libQt5DBus.so.* 拷贝到/usr/lib/x86_64-linux-gnu下  因为plugins下的platforms/libqxcb.so依赖这些库
现在就基本OK了,可执行程序下只有qt.conf  清爽
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt linux 打包发布