ubuntu 使用linuxdeployqt打包Qt程序
准备工作
- 下载linuxdeployqt
- 下载地址,下载这个xxx.Appiamge文件即可

-
配置linuxdeployqt
-
将下载得到的xxx.Appiamge,移动到
/usr/local/bin目录下,这样,我们就可以在其他目录访问了 -
为了方便使用我们可以将其改一下名字并加上权限
mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt mv linuxdeployqt /usr/local/bin -
输入查看版本没有问题就可以正常使用了,

-
-
获取可执行文件
-
准备好程序的realse环境下的可执行文件,使用qtcreator或者vsode的IDE都行,找到
build目录下的可执行文件
-
将这个执行文件拷贝到一个空文件夹下,并进入到这个文件夹

打包
-
完成上述步骤后输入以下指令进行程序打包,中间的为你的可执行文件名
linuxdeployqt hmi -appimage -
执行完成后

-
这样其实就可以了,但是我们可以看到它有俩个error,其实这并有关系 一个是没有 .desktop 文件,这个是linuxdeployqt的一个配置,后续可以再次编辑,一个是没有设置图标也是后续可再次编辑的。
-
打包后整个目录如下显示

-
我们执行
AppRun文件就行了
遇到的问题
- 缺少库
-
因为linuxdeployqt将在内部使用ldd命令,来确定从何处将库复制到包中。ldd命令本身只能查找隐式加载的so,故若程序中代码使用显式加载的so,它是找不到的,需要自己手动的加入。(这个和你写的
cmakelist或者pro文件的关系很大) -
比如我现在运行程序直接报错了,因为我程序里面使用了
glog,所以很明显的看出是少了vlc的相关库
-
这时候我们可以先使用
ldd指令查看原本的可执行文件链接了哪些库(找到库的路径复制进来)
-
找到这个库的 如何复制到
lib文件夹下,至此程序打包完成,应可正常启动。
- 本地多qt版本
- 本地或可能有多个版本的qt 它们安装的库可能不是对应的 所以打包的时候可以指定qt的版本
linuxdeployqt hmi -appimage -qmake=/usr/lib/qt5/bin/qmake
配置启动
- 新建一个
xxx.desktop文件,内容如下
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=clash
Exec=xxx/AppRun
Icon=xxx/default.png
- 将该文件拷贝到
.local/share/applications, cd ~/.local/share/applications/ - 这样你就可以直接在应用程序里面中找到并双击启动了
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)