ubuntu下打包qt程序

2 篇文章 0 订阅

1. ubuntu下打包qt程序,将qt程序发到一个无qt环境的平台运行

1.1 自动打包

参考:https://blog.csdn.net/qq_39072246/article/details/125254270。亲测只适合QWidget,不适合QML。
这个教程有个手动更改文件的步骤:
sudo vim default.desktop
在文件最后一行添加
Categories = Application;
注意分号是一定要的。

这个更详细,参考:https://blog.csdn.net/zyhse/article/details/106381937/

问题1:用Linuxdeployqt工具打包的qt程序会缺少qml的库文件
解决方法:将qt安装目录下的gcc_64目录里的lib相关的QtQuik库和qml文件夹拷贝到程序目录,程序能够启动。

问题2

  • 缺少libodbc.so.2
    sudo apt install unixodbc-dev
  • 缺少libpq.so.5
    sudo apt-get install libpq-dev

问题3使用命令 sudo linuxdeployqt bioreactor -appimage打包时报如下错误,不加sudo就不会出现该错误,qmake的环境变量已经配置好。
linuxdeployqt 5 (commit 37631e5), build 631 built on 2019-01-25 22:47:58 UTC
Not using FHS-like mode
app-binary: “xxx”
appDirPath: “xxx”
relativeBinPath: “bioreactor”
Keeping existing AppRun
ERROR: “/usr/bin/qmake -query” exited with 1 : “qmake: could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’: No such file or directory\n”
ERROR: Qt path could not be determined from qmake on the $PATH
ERROR: Make sure you have the correct Qt on your $PATH
ERROR: You can check this with qmake -v
根据错误提示,追踪/usr/bin/qmake发现是qtchooser没配置好。
参考https://blog.csdn.net/qq_39072246/article/details/125254270,首先更改/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf文件,
将文件的内容全部删除,根据自己的qt安装路径更改为:
/home/pc_name/Qt5.12.12/5.12.12/gcc_64/bin
/home/pc_name/Qt5.12.12/
然后再打包,如果qtchooser已经是最新的则会打包成功。

1.2 手动打包

(暂未测试)这里记录下手动打包步骤,参考:https://blog.csdn.net/m0_47166254/article/details/125322365

    1. 把qt creator设置为release模式;
    1. 将编译后的可执行文件my_project放到空的文件夹my_release,同时在该文件夹下建立lib和bin文件夹,打开终端,输入ldd ./my_project | awk ‘{print $3}’ |xargs -i cp -L {} my_release/lib,可能会缺少libQt5DBus.so.5及libQt5XcbQpa.so.5(需要将对应的libQt5XcbQpa.so.(版本)改名为libQt5XcbQpa.so.5),需要去安装路径下寻找然后使用sudo权限拷贝到my_release文件下的lib中;
    1. 此时文件夹下既有可执行文件也有可执行程序连接的基本动态库,但是还有部分库不在,进入安装Qt的文件夹中找到 plugins/platforms(Qt需要的跨平台的相关库),”Crtl+Alt+T"打开控制台,输入"sudo cp -r ./platform ~/ my_release/bin"(~/指用户目录),再次进入到Qt安装目录plugins目录中找到imageformats文件夹,然后输入"sudo cp -r ./platform ~/ my_release/bin"(此文件夹中的库用于加载各种图片资源,如有设置gif等资源不生效时即缺失这些库);
    1. 将可执行程序my_project移入’bin’文件夹中;
    1. 现在撰写执行脚本:在my_release目录中按下”Crtl+Alt+T"弹出控制台,
      输入”gedit my_project.sh"然后输入
      export LD_LIBRARY_PATH= L D L I B R A R Y P A T H : LD_LIBRARY_PATH: LDLIBRARYPATH:PWD/lib
      ./bin/task_scheduling_visual “$@”
    1. 此时程序已经打包完成,将my_release文件夹传到无qt环境中,运行脚本文件即可运行qt程序。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值