基于ubuntu18 QT程序发布流程

1、部署程序的环境需要安装QT开发环境吗?

2、QT程序如何调用自定义的库文件?

3、QT程序如何开机自启动?

4、QT程序遇到泪滴xcb库依赖调用失败怎么解决?

5、如何设置QT_QAP_PLATFORM_PLUGIN_PATH 路径?

6、如何打印更多的更详细异常信息?

7、发布时候,需要与程序平级放platforms和plugins文件,尤其plugins文件内部的驱动,例如mysql数据库的驱动,直接拷贝开发平台的文件即可。

针对以上问题,分享个人工作总结和体会,如有问题敬请提出宝贵意见,分享见解!

解决流程:

1、针对QT程序的发布,除了需要自定义的库文件外,需要QT开发环境的plugins文件一同发布到程序的相同路径下;

2、需要设置环境变量:export T_QPA_PLATFORM_PLUGIN_PATH=/opt/Qt5.12.12/5.12.12/gcc_64/plugins/platforms/

3、或者修改/etc/profile 文件追加上行的命令代码,并执行source 生效;

4、另外一种(一般不用)修改/etc/ld.so.conf.d/lib.conf   增加自定义库的路径位置;

QT开发遇到问题:

1、岔开libbsd。so的依赖GLBC版本: Strings /lib/x86_64-linux-gnu/libbsd.so.o |grep GLIBC_

2、Qt编译错误“GL/gl.h:No such file or directory

  是因为这是由于系统中没有安装OpenGL库导致的,于是在控制台中输入以下命令安装OpenGL库及其工具:apt-get install libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev 即可。

3、解析xml文件的时候提示缺少libxml2,安装apt-get install libxml2-dev即可。

4、QTCreator运行失败,提示找不到xcb库:

解决方法:
1.sudo gedit ~/.bashrc 输入 export QT_DEBUG_PLUGINS=1
export LD_LIBRARY_PATH=/home/itcast/qt/Qt5.12.10/5.12.10/gcc_64/lib:$LD_LIBRARY_PATH(注意把路径替换为自己的安装路径)

5、开机自启动设置

gnome-session-properties

6、问题如下:

Got keys fom plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/home/itcast/qt/Qt5.12.10/Tools/QtCreator/bin/platforms" ...loaded library "/home/itcast/qt/Qt5.12.10/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so"loaded library "Xcursor"Segmentation fault (core dumped)

原因在于libqxcb.so,解决方法

进入platform目录 ~/qt/Qt5.12.10/5.12.10/gcc_64/plugins/platforms(注意路径和安装位置有关) 执行如下命令

ldd libqxcb.sosudo apt install --reinstall libxcb-xinerama0
source ~/.bashrc
到这里QT就已经可以打开了(注意,QT 需要加sudo才能打开)
sudo ./qtcreator

7、程序部署在目标环境上,有时运行不通过,提示xcb库调用不到

解决办法:1、设置QT_QAP_PLATFORM_PLUGIN_PATH 变量,指定platforms的路径;

2、设置QT_DEBUG_PLUGINS=1,  这样程序运行的时候会提示更加详细的错误信息;

3、通过ldd命令,查看调用失败的库依赖环境是否缺少,例如:

    linux-vdso.so.1 (0x00007ffffebe9000)
    libQt5XcbQpa.so.5 => not found
    libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f5173e69000)
    libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f5173bb5000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f5173998000)
    libQt5Gui.so.5 => not found
    libQt5DBus.so.5 => not found
    libQt5Core.so.5 => not found
    libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f517370c000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f51734ed000)
    libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f51732eb000)

我们可以通过查找到并拷贝这些库到当前程序路径下面解决。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值