文章目录
准备工作
- 下载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
文件夹下,至此程序打包完成,应可正常启动。
配置启动
- 新建一个
xxx.desktop
文件,内容如下
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=clash
Exec=xxx/AppRun #AppRun路径
Icon=xxx/default.png #图标路径
- 将该文件拷贝到
.local/share/applications
- 这样你就可以直接在应用程序里面中找到并双击启动了