麒麟系统上使用linuxdeployqt 编译安装

linuxdeployqt 去除git校验可以编译处理

银河麒麟V4,V10,本篇以V10记录,参照上一篇可安装V4、V7、V10三个版本,麒麟V4系自带了Qt,麒麟V10没有自带Qt,需要自己编译搭建环境。

麒麟系统上使用linuxdeployqt 编译安装_第1张图片

麒麟系统上使用linuxdeployqt 编译安装_第2张图片

linuxdeployqt编译(麒麟系统,ubuntu)

步骤一:下载解压

gitcode地址:https://gitcode.net/mirrors/probonopd/linuxdeployqt

步骤二:修改源码,去掉版本检查

  找到main.cpp源码,将这一段(在192行左右)注释掉:

gedit tools/linuxdeployqt/main.cpp

麒麟系统上使用linuxdeployqt 编译安装_第3张图片

这一步不做会导致打包输出错误信息

步骤三:安装依赖第三方库

sudo apt-get install cmake
sudo apt-get install patchelf

步骤四:使用cmake配置

cmake CMakeList.txt

安装了git所以会报错所以吧 CMakeList.txt 里面的删掉

麒麟系统上使用linuxdeployqt 编译安装_第4张图片

只留下

麒麟系统上使用linuxdeployqt 编译安装_第5张图片

步骤五:配置Qt的依赖环境

  麒麟系统本身自带了qt5,而我们使用了另外安装的qt5,所以依赖需要引入我们自己安装的qt5上。   为了方便配置,也不影响系统我们装上cmake的gui版本:

sudo apt-get install cmake-gui

直接双击 CMakeCache.txt 会调用cmake

 麒麟系统上使用linuxdeployqt 编译安装_第6张图片

麒麟系统上使用linuxdeployqt 编译安装_第7张图片

步骤七:编译make

  切入build目录,并且使用make命令即可:

make

步骤八:安装到系统目录

  • 编译完成后,在目录 tools/linuxdeployqt/linuxdeployqt 下会生成一个可执行文件 linuxdeployqt,修改其权限:
cd ./tools/linuxdeployqt
sudo chmod a+x linuxdeployqt

  没有make install这个,手动移动到/usr/local/bin

sudo mv linuxdeployqt /usr/local/bin/
  • 为了方便之后使用,可以将该可执行文件复制到 /usr/local/bin 目录下:
sudo cp linuxdeployqt /usr/local/bin/

步骤九:测试是否编译成功

linuxdeployqt --version 出现版本就是成功

步骤十:拷贝需要系统的QT版本库更改系统文件

1.export PATH=$PATH:/home/hdgx/Qt5.12.1/5.12.1/gcc_64/bin

  这里要将Qt引入环境,为了不影响系统,使用脚本引入,每次使用之前使用source env.sh引入即可。

#!/bin/sh QT_DIR=/home/hdgx/Qt5.12.1/5.12.1/gcc_64 
export PATH=${QT_DIR}/bin:$PATH 
export LIB_PATH=${QT_DIR}/lib:$LIB_PATH 
export PLUGIN_PATH=${QT_DIR}/plugins:$PLUGIN_PATH 
export QML2_PATH=${QT_DIR}/qml:$QML2_PATH 
export LD_LIBRARY_PATH=${QT_DIR}/lib:$LD_LIBRARY_PATH

echo $PATH 
echo $LIB_PATH 
echo $PLUGIN_PATH 
echo $QML2_PATH echo $LD_LIBRARY_PATH

  • linuxdeployqt命令可能要用到选项 -appImage(实际上我就用到了),因此需要安装一下 appimagetool,下载和安装命令如下:
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
打包Qt项目
在Qt中打开需要打包的Qt项目,选择 release 编译。在项目文件夹下会出现一个 appname_***_release*** 的文件夹,将该文件夹中的 appname 的编译好的文件拷贝到一个单独的文件夹中,这个文件夹也可以命名为 appname。注意:appname为项目的名字,需要根据自己的项目名做修改。
然后执行命令:

linuxdeployqt appname -appimage
1
接下来就是等待了,等待打包完成。完成后在文件夹中会出现一个 appname_***.AppImage的可执行文件,这个可执行文件就是我们需要的文件了。
在执行这条命令时可能会报如下错误:

Categories entry not found in desktop file
.desktop file is missing a Categories= key

说的是在.desktop文件中少了一个属性Categories,所以我们需要在desktop文件中手动加入一行:

   Categories=Application;

再次执行 linuxdeployqt 命令即可。

你可能感兴趣的:(QT,qt,git,开发语言)