zoukankan      html  css  js  c++  java
  • 【linux】【qt5】【将linux下的qt程序打包发布(完全适用于中标麒麟)】

    前言:

      最近因项目需求,需要打包linux-qt程序给客户先用一下子。百度一大堆终于找了几个靠谱的来综合一下,留为备用吧。

      由于是先遣版所以仅制作为免安装程序的格式

    正文:

      博主的qt是5.9.2的,程序名称为ocs,下面看到这个名称替换成自己的就是了。

      1.先找个地方,比如桌面创建一个名字为OCS的空文件夹用于放打包后的文件。

      2.将项目使用Release模式编译并运行一遍(确保生成可执行程序ocs)。

      3.打开程序输出目录(生成的那个可执行程序ocs的目录)。

        博主的目录是build-ocs-Desktop-Release。

      4.在上一部的目录中新建脚本copylib.sh。

      5.在copylib.sh中加入一下内容,并通过指令赋值权限sudo chmod 777 copylib.sh。

      

     1 #!/bin/bash
     2 
     3 LibDir=$PWD"/lib"
     4 Target=$1
     5 
     6 lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*"))
     7 
     8 $(mkdir $LibDir)
     9 
    10 for Variable in ${lib_array[@]}
    11 do
    12     cp "$Variable" $LibDir
    13 done

      6.打开终端并进入当前文件夹,输入./copylib.sh ocs.

      其中, giptables 是运行copylib.sh 脚本的参数,脚本实际上是调用了 ldd ocs指令获得ocs运行时需要哪些库,并将库都复制放到当前目录的lib文件夹中。

      7.运行完上述指令后,会在同目录下生成lib文件夹。

      8.将ocs的可执行程序和上一步lib里面的文件全部复制到OCS文件夹中。并将lib文件删除。

      9.进入qt的安装目录,找到platforms目录,博主的目录是:

        /usr/lib64/qt5/plugins/platforms

      10.将第5步的copy.sh放到platforms目录中,并运行./copylib.sh libqxcb.so,这时也会得到一个lib文件加-libqxcb.so的库文件夹。

      注:xcb是移植的重要文件,如果拷贝错误将不能在目标主机运行。

      11.将platforms文件夹整个拷贝到OCS,并删除原先文件夹中的libxcb.so库文件夹。

      12.将拷贝后的库文件夹的东西全部放到OCS目录下。即将OCS/platforms/lib/* 拷贝到OCS下。并删除OCS/platforms/lib文件夹及其所属文件。

      13.在OCS文件夹中新建脚本ocs.sh,添加下面内容后赋值赋值权限。chmod 777 ocs.sh 。

      

     1 #!/bin/sh
     2 appname=`basename $0 | sed s,.sh$,,`
     3 
     4 dirname=`dirname $0`
     5 tmp="${dirname#?}"
     6 
     7 if [ "${dirname%$tmp}" != "/" ]; then
     8 dirname=$PWD/$dirname
     9 fi
    10 LD_LIBRARY_PATH=$dirname
    11 export LD_LIBRARY_PATH
    12 $dirname/$appname "$@"

    到现在,可以将OCS文件夹拷贝到目标主机上运行了。在目标主机上运行程序是采用./ocs.sh运行,而不是直接点击ocs.


    注,

    1. 全程对库文件夹的拷贝都是拷贝文件夹里面的内容,而不需要带lib目录。我们的层次结构OCS/platforms/,没有其他。
    2. 查找platforms文件方法:find / -name "platforms".
    3. 拷贝文件夹:cp -R xx/xx xxx/
    4. 无视名称移动文件:mv -f xx/xx/xx/

      

    后记:

      linux下免安装打包就到这里了,遇到问题欢迎留言哦。

      

  • 相关阅读:
    HTML link标签media参数
    初始化一个本地GIT仓储
    总结一下js的原型和原型链
    根据用户注册信息推荐 代码部分
    冷启动问题概述
    概率图模型
    LFM 隐语义模型
    item Collaborative Filtering
    推荐系统评测
    user Collaborative Filtering
  • 原文地址:https://www.cnblogs.com/13373-/p/11467102.html
Copyright © 2011-2022 走看看