ubuntu下打包qt程序
参考:https://blog.csdn.net/qq_39072246/article/details/125254270。(暂未测试)这里记录下手动打包步骤,参考:https://blog.csdn.net/m0_47166254/article/details/125322365。这个更详细,参考:https://blog.csdn.net/zyhse/article/details/106
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
-
- 把qt creator设置为release模式;
-
- 将编译后的可执行文件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中;
-
- 此时文件夹下既有可执行文件也有可执行程序连接的基本动态库,但是还有部分库不在,进入安装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等资源不生效时即缺失这些库);
-
- 将可执行程序my_project移入’bin’文件夹中;
-
- 现在撰写执行脚本:在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 “$@”
- 现在撰写执行脚本:在my_release目录中按下”Crtl+Alt+T"弹出控制台,
-
- 此时程序已经打包完成,将my_release文件夹传到无qt环境中,运行脚本文件即可运行qt程序。
更多推荐
所有评论(0)