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


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

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

    因为有git的链接导致虚拟机内存经常爆了。所以处理这个git:

    linuxdeployqt编译(麒麟系统,ubuntu)

    步骤一:下载解压

    1. gitcode地址:https://gitcode.net/mirrors/probonopd/linuxdeployqt
    2. CSDN下载地址:https://download.csdn.net/download/qq_42095701/87484826 编译正常

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

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

    gedit tools/linuxdeployqt/main.cpp

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

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

    1. sudo apt-get install cmake
    2. sudo apt-get install patchelf

    步骤四:使用cmake配置

    cmake CMakeList.txt

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

    只留下

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

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

    sudo apt-get install cmake-gui

    直接双击 CMakeCache.txt 会调用cmake

     

    步骤七:编译make

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

    make

    步骤八:安装到系统目录

    • 编译完成后,在目录 tools/linuxdeployqt/linuxdeployqt 下会生成一个可执行文件 linuxdeployqt,修改其权限:
    1. cd ./tools/linuxdeployqt
    2. 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引入即可。

    1. #!/bin/sh QT_DIR=/home/hdgx/Qt5.12.1/5.12.1/gcc_64
    2. export PATH=${QT_DIR}/bin:$PATH
    3. export LIB_PATH=${QT_DIR}/lib:$LIB_PATH
    4. export PLUGIN_PATH=${QT_DIR}/plugins:$PLUGIN_PATH
    5. export QML2_PATH=${QT_DIR}/qml:$QML2_PATH
    6. export LD_LIBRARY_PATH=${QT_DIR}/lib:$LD_LIBRARY_PATH
    7. echo $PATH
    8. echo $LIB_PATH
    9. echo $PLUGIN_PATH
    10. echo $QML2_PATH echo $LD_LIBRARY_PATH

    • linuxdeployqt命令可能要用到选项 -appImage(实际上我就用到了),因此需要安装一下 appimagetool,下载和安装命令如下:
    1. sudo wget -c "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" -O /usr/local/bin/appimagetool
    2. sudo chmod a+x /usr/local/bin/appimagetool
    1. 打包Qt项目
    2. 在Qt中打开需要打包的Qt项目,选择 release 编译。在项目文件夹下会出现一个 appname_***_release*** 的文件夹,将该文件夹中的 appname 的编译好的文件拷贝到一个单独的文件夹中,这个文件夹也可以命名为 appname。注意:appname为项目的名字,需要根据自己的项目名做修改。
    3. 然后执行命令:
    4. linuxdeployqt appname -appimage
    5. 1
    6. 接下来就是等待了,等待打包完成。完成后在文件夹中会出现一个 appname_***.AppImage的可执行文件,这个可执行文件就是我们需要的文件了。
    7. 在执行这条命令时可能会报如下错误:
    8. Categories entry not found in desktop file
    9. .desktop file is missing a Categories= key
    10. 说的是在.desktop文件中少了一个属性Categories,所以我们需要在desktop文件中手动加入一行:
    11. Categories=Application;
    12. 再次执行 linuxdeployqt 命令即可。

  • 相关阅读:
    构造器(constructor)是否可被重写(override)?
    C++位运算及魔法方法
    0基础转行软件测试,如何实现月薪9.5k+
    使用pnpm创建vue3项目
    机器学习数学基础
    力扣刷题 数据结构与算法(十)
    名单揭晓 | 2021年度中国杰出知识产权服务团队
    K8s 部署 CNI 网络组件+k8s 多master集群部署+负载均衡
    省重点实验室成果转化:24h在线的专业数字朋友,不用欠人情的网上解答神器~
    Java中,对象一定在堆中分配吗?
  • 原文地址:https://blog.csdn.net/qq_42095701/article/details/128003376