- 序言
- 环境
- 一、下载linuxdeployqt
- 下载开发者边车 DevSidecar
- 下载网上编译好的包
- 下载源码自行编译
- 放进Linux里
- 二、配置linuxdeployqt
- 配置Qt的环境变量,便于打包时寻找到地址
- 已编译好的包配置
- 自行编译包的步骤
- 三、其余软件的安装配置
- patchelf
- Appimagetool
- 四、linuxdeployqt打包
网上其实都有很多,但是都或多或少有些不全,版本也是不讲明适合怎么样的,所以我就写出来仅供参考。
环境Linux Mint20.3
Qt5.15.2
此处共两个方法下载,一个是下载网上编译好的包,另一个是下载源码然后自行编译安装,由于本人经常很难登录到GitHub,所以我也一并把勉强能登录的方法写下来。
下载开发者边车 DevSidecar如果有人和我一样很难登录上GitHub的话,可以下载开发者边车,这个软件能够让你登的上去。
随便找的一个下载处
下载网上编译好的包linuxdeployqt下载地址:https://github.com/probonopd/linuxdeployqt/releases
但要注意的一点是,如果Linux的环境glibc版本不匹配,会引发报错的,详细报什么错可以看下去。
如果你还没安装Linux环境或者不知道自己匹不匹配,可以看下这位总结出来的Linux发行版的glibc版本
下载源码自行编译如果你看了上文,发现glibc版本不匹配,所以用不了上面的方法,可以看这个方法,其实这个方法也和掩耳盗铃差不多。
linuxdeployqt源码下载地址:https://github.com/probonopd/linuxdeployqt.git
下载下来ZIP压缩包即可。
一般我们开发Linux的都是用的虚拟机开发吧,只要将包放到Linux的划定的共享文件夹里,然后从中复制/剪切进去放到随便放个文件夹里即可。
上面的菜单栏中:虚拟机->设置->选项
输入指令编辑环境变量
vi ~/.bashrc
在未进入输入模式前,按“shift+g”即可跳转最下方,然后填入下方的环境变量即可。
export QTDIR=/home/mrliang/WorkSoftware/Qt5.15/5.15.2/gcc_64 export PATH=$QTDIR/bin:$PATH export MANPATH=$QTDIR/man:$MANPATH export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH export PLUGIN_PATH=$QTDIR/plugins:$PLUGIN_PATH export QML2_PATH=$QTDIR/qml:$QML2_PATH
注:上面的环境变量不全,如果打包时漏了,需自行复制模块包过去,或者找到对应环境变量再行编辑也可,最好能评论留言让我增添此处,谢谢。
.
如果是第一个方法下载的,可以直接在包所在目录下按顺序输入即可。
sudo mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt //重命名 sudo mv ./linuxdeployqt /usr/local/bin //方便任意文件夹里使用 chmod 777 linuxdeployqt //赋予权限 sudo linuxdeployqt --version //查询是否配置好
.
自行编译包的步骤进入你放的解压缩后linuxdeployqt源码文件夹里(本人的Linux环境存在下图的选项,我可以直接提取出来,别的环境自行找教程解压缩吧)。
注:本人让其环境配置中文化了,非环境本身默认语言
再进入到里面的tools/linuxdeployqt/里
vi/vim/gedit都可以,打开main.cpp,注释掉下面的if项(大概200行左右),免得报glibc版本过高的错,这就是所谓的掩耳盗铃,不涉及太深入的基本没什么影响。
// openSUSE Leap 15.0 uses glibc 2.26 and is used on OBS
// Ubuntu Xenial (16.04) uses glibc 2.23
// Ubuntu Bionic (18.04) uses glibc 2.27
执行cmake
cmake CMakeLists.txt make
此处如果报错的话,看下方。
还有一处问题,我怀疑是我下载的源码或者是环境变量漏了之类的原因吧,原因暂时不明,大概在51行处,这是用来输出linuxdeployqt版本的。
总是提示报错,但我怎么看都不像格式的问题,我又不清楚那些宏的定义,所以就退而求其次,一并注释掉吧。
version << "linuxdeployqt over" ;
当make成功后,会生成一个linuxdeployqt的程序文件,这个就和上面的编译后的文件一样。
继续输入:
sudo chmod 777 linuxdeployqt //赋予权限 sudo cp -p linuxdeployqt /usr/local/bin/ //方便任意文件夹里使用 sudo linuxdeployqt --version //输出linuxdeployqt over三、其余软件的安装配置
linuxdeployqt其实有不同的打包方式,但现在按下不表,感兴趣可自行查询了解。
本文是常用的-appimage方式
patchelf方法①:
sudo apt-get install patchelf
方法②
wget https://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.bz2 tar xf patchelf-0.9.tar.bz2 cd patchelf-0.9/ ./configure make sudo make installAppimagetool
方法①:
Appimagetool下载地址:
https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
在Linux的Appimagetool当前目录下输入:
sudo mv appimagetool-x86_64.AppImage appimagetool chmod 777 appimagetool sudo./appimagetool /usr/local/bin
方法②
sudo wget -c "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" -O /usr/local/bin/appimagetool sudo chmod a+x /usr/local/bin/appimagetool
当上面的都安装好后,分别输入
which linuxdeployqt which patchelf which Appimagetool
返回路径说明存在,安装成功。
四、linuxdeployqt打包将release下编译出exe文件复制到一个新文件夹里,然后在该文件夹目录的命令行中输入
sudo linuxdeployqt 软件名.exe -appimage
.
完…本文主要是linuxdeployqt的环境配置,其余的需自行搜集丰富。
主要参考文章:
①https://blog.csdn.net/skl5879166/article/details/124247975
②https://blog.csdn.net/weixin_44713381/article/details/107894339



