1.须知
自用,不能保完全适合你的需求
只适用简单的QT工程
1.标准qmake工程,一些cmake工程不能保证适用
2.不涉及太多第三方库,linuxdeployqt不能递归拷贝库文件,如果打包完运行显示缺少库,可以手动把缺少的库拷进来
ldd命令可以查看你的程序需要哪些库文件,再对比打包完告知缺少的,找到库文件进行拷贝,注意一点:拷贝的时候分清你拷的是链接文件还是正真的库文件(看颜色或者属性)
环境:Ubuntu18.04
QT版本:5.14
使用工具:linuxdeployqt
2.准备工作
确保QT环境变量正确,即linuxdeployqt可以通过环境变量找到qt的库文件
下载编译安装linuxdeployqt,有的文章说linuxdeployqt不支持1804版本,需要修改编译脚本。自己去看了编译脚本,现在应该不存在这个问题。
下载参考:
Linux下使用linuxdeployqt发布Qt程序-CSDN博客
注:上面这个文章打包步骤是:1拷贝程序2直接执行打包命令3修改.desktop4.给权限5点击.desktop执行 很多文章也是用这个步骤,但是我试玩都不行(可能是我的问题)
3.步骤
1.准备好可执行文件
1.Qtcreator中使用release编译
找到执行文件
2.构建目录
1.新建一个文件夹,执行文件复制进去;新建一个文本文件default.desktop(名字随意,要以.desktop结尾),放一个图标文件进去作为图标(这里我按其他文章打包出来图标没有变成我修改的,有懂的请教一下原因)
可参考的命令:
mkdir RTSPTool
touch default.desktop
2.修改default.desktop
[Desktop Entry]
Type=Application
Name=RTSPTool #软件名字
Comment=no #随意写
Exec=RTSPTool #执行文件,刚刚拷过来的,不需要加路径
Icon=robot #图标文件,不需要加扩展名(Linux本来就不存在扩展名的说法)
Terminal=false #打开后会不会开启一个终端界面
Categories=Application;
各项功能参考:
[Desktop Entry]
Type=Application
Name=这里填应用的名字
Comment=这里描述该程序功能
Exec=这里是可执行文件的路径。仅当可执行文件不在 $PATH 变量中指定的任何路径中时,才必须使用可执行文件的完整路径。例如,路径 /usr/bin 内的任何文件都不需要在 Exec 字段中指定其完整路径,而只需指定其文件名即可,或者在当前路径下也不用。
Icon=这里是应用图标。例如,目录 /usr/share/pixmaps 下的所有图标不需要指定其完整路径,但不需要指定不带扩展名的文件名。例如,如果图标文件是 /usr/share/pixmaps/wallch.png,则图标字段应该只是“wallch”。或者在当前路径下也不用。所有其他图标都应指定其完整路径。
Categories=Application;
3.执行打包命令
1.当前路径下执行如下语句,中间是你的软件名称
参考命令:
linuxdeployqt RTSPTool -appimage
执行完结果如下
生成如下目录,点击AppImage就可以运行,至于他的图标为啥没有变我也不清楚,治标不治本的方法:在属性里修改,但是拷到另外一个系统里他还会变回来。