银河麒麟V4,V10,本篇以V10记录,参照上一篇可安装V4、V7、V10三个版本,麒麟V4系自带了Qt,麒麟V10没有自带Qt,需要自己编译搭建环境。
因为有git的链接导致虚拟机内存经常爆了。所以处理这个git:
- gitcode地址:https://gitcode.net/mirrors/probonopd/linuxdeployqt
-
- CSDN下载地址:https://download.csdn.net/download/qq_42095701/87484826 编译正常
找到main.cpp源码,将这一段(在192行左右)注释掉:
gedit tools/linuxdeployqt/main.cpp
这一步不做会导致打包输出错误信息
- sudo apt-get install cmake
- sudo apt-get install patchelf
cmake CMakeList.txt
安装了git所以会报错所以吧 CMakeList.txt 里面的删掉
只留下
麒麟系统本身自带了qt5,而我们使用了另外安装的qt5,所以依赖需要引入我们自己安装的qt5上。 为了方便配置,也不影响系统我们装上cmake的gui版本:
sudo apt-get install cmake-gui
直接双击 CMakeCache.txt 会调用cmake
切入build目录,并且使用make命令即可:
make
- cd ./tools/linuxdeployqt
- sudo chmod a+x linuxdeployqt
没有make install这个,手动移动到/usr/local/bin
sudo mv linuxdeployqt /usr/local/bin/
sudo cp linuxdeployqt /usr/local/bin/
linuxdeployqt --version 出现版本就是成功
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
- 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 命令即可。