| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux下使用linuxdeployqt发布Qt程序 -> 正文阅读 |
|
[系统运维]Linux下使用linuxdeployqt发布Qt程序 |
安装linuxdeployqt一.下载并安装linuxdeployqt1.下载 方式一:若系统在ubuntu18.04以下,可以直接去?github下载编译好的linuxdeployqt-x86_64.AppImage 应用程序文件 去github直接下载编译好的 linuxdeployqt-continuous-x86_64.AppImage 应用程序文件。 2.安装 方式一:利用下载编译好的linuxdeployqt-x86_64.AppImage 应用程序文件。下载好之后,将其改名为linuxdeployqt,并chmod +x,然后复制到 /usr/local/bin/。然后命令行输入 linuxdeployqt --version,查看是否安装成功,若输出版本信息表示安装成功。
方式二源码编译安装由于目前官网提供的编译好的包适用于Ubuntu16.04以下的版本,ubuntu18.04及以上版本需要自行编译安装。编译安装步骤如下: 方式二:编译源码。
1)使用git克隆linuxdeployqt源代码,命令如下:
2)git完成后,进入linuxdeployqt文件夹
3)注释掉源代码种版本判断的代码,使其对ubuntu18.04及以上版本适用,使用gedit或者vim打开tools/linuxdeployqt/main.cpp脚本,将以下代码注释
注释之后保存退出即可。之后在当前目录执行cmake、make命令。 2. 安装cmake在Ubuntu上使用命令:
同样:CentOS使用:
修改之后保存。然后回到linuxdeployqt目录,使用cmake编译:
编译完了之后,生成了makefile文件,再执行make完成之后
最后在tools/linuxdeployqt目录生成一个可执行文件:linuxdeployqt
Ubuntu上将linuxdeployqt文件拷贝到/usr/local/bin使用 在任何一个位置,使用./linuxdeployqt能正常使用,即安装成功了。 在目录tools/linuxdeployqt/linuxdeployqt下会生成一个linuxdeployqt的二进制文件,进入该目录,修改权限使其可执行如下:
同样为了方便直接使用,将该文件移动至/usr/local/bin目录下
同样执行如下代码显示版本则表示安装成功。
三.配置 qt 的环境变量终端输入vim ~/.bashrc? ? 或者 gedit ~/.bashrc 命令,
修改 .bashrc 文件,在文件末尾追加以下内容,因为我是root 命令安装QT的 其中/opt/Qt/5.14.2是我的Qt安装路径,直接安装的你们路径可能是/home大家要用自己的路径代替:
如果使用查看自己的qmake版本不对
将第一行改为自己安装路径(这是我的安装路径/opt/Qt5.14.2/)下的bin目录的路径,第二行改为Qt5.14.2目录的路径。如下:
改为
? qtchooser 的配置目录: /usr/lib/x86_64-linux-gnu/qtchooser qtchooser 的真实配置目录: /usr/share/qtchooser qtchooser 的用户配置目录: ~/.config/qtchooser/ 由于我使用的是Ubuntu能直接上面命令修改 其他liunx系统可取真实配置目录下修改 你也可以用其他方式扩展一些环境变量。像 qmake、moc 以及其他的一些 Qt 工具所在的路径,都需要加到 PATH 里面。但容易损坏系统的一些环境不推荐使用。 具体的做法,打开 /etc/profile(对所有用户有效):
在该文件的最底下添加以下内容:
保存,重新加载配置:
四、打包应用程序(1)运行Qt生成release版本的可执行文件,勾选了“shadow build”,所以示例用的是build-untitled-Desktop_Qt_5_14_2_GCC_64bit-Release文件夹下的untitled可执行文件;
执行上面命令出现提示信息,不用管,只是创建了一个需要你自己编辑的desktop文件:
到这一步,就把可执行文件的动态库等依赖文件都复制到该文件夹中了。 到这里会出现几个问题: 问题一:lib*.so.1 => not found,类似此类的输出,说明该动态链接库找不到,可以进行如下操作。
问题二:在问题一的基础上,还会提示缺少依赖库,但通过ldd查询却没有该依赖库,此时可以去考虑百度搜索该库的名称,看是否缺少该库对应的软件包。例如我提示的是libpq.so.5 notfound,通过搜索发现该依赖库属于postgresql,通过如下命令进行安装
最后像问题一中一样添加路径并使其生效。
这时候会发现usr/local/cuda-8.0/lib64/目录下只有libcudnn.so.5.0.5 文件了,libcudnn.so.5消失了。这个问题就可以解决了。 五.打包后的处理1.如果在执行完$ linuxdeployqt 自己的工程名称 -appimage命令以后,出现如下内容(还有提示图标或者其他库的问题的可以忽略,只要看到下面的输出,就说明成功了):
此时会生成AppRun文件,./AppRun或者./自己工程的二进制文件都可以运行,如果项目运行用到了本地文件,也要放到二进制文件所在的目录里面才能保证项目的正常运行。 六.使其像应用程序一样可以启动1.首先刚刚linuxdeployqt执行完之后,会生成default.desktop文件,使用vim对其进行编辑,内容如下
之后赋予权限
这时就可以直接双击运行了(提示信任时,直接点击信任即可,这时会发现图标和名称也变了)。 注:这里自定义生成.desktop文件可以复制到/usr/share/applications中,这样应用程序中就可以有改程序;.desktop文件无论复制到什么路径下都可以执行,且项目运行的当前路径为主目录(比如,工程中有数据库操作,那么生成的数据库文件就会在主目录,同理,工程依赖的资源文件,也要放在主目录)。 虽然 linuxdepoyqt 可以帮我们解决多数情况下库的依赖问题,但是也有的时候不能完整解决。这个时候就需要我们自己复制所依赖的库。
另建一个与文件名称相同的.sh? 如untitled.sh 注意该脚本的名称必须和程序名一致。
给这两个脚本加权限 chmod 777 xxxxx.sh
具体创建一个Qt5.14.2的快捷图标
在打开的文档中写入:?
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:34:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |