• Linux下Qt打包


    一、shell脚本

    复制某文件夹下内容到指定位置:

    #!/bin/bash
    pwd="/home/edward/YR/test"   #所建文件夹的路径       
    cp -r /home/edward/Desktop/lost/* $pwd
    
    • 1
    • 2
    • 3





    二、Linux下Qt打包的shell脚本

    1.新建一个文件夹,放入可执行程序(linux下可执行程序无后缀名),新建两个shell脚本

    touch pack.sh   //建立第一个shell文件
    touch xxx.sh    //建立第二个shell文件,注意第二个脚本文件的名字必须与可执行文件的命名相同
    
    • 1
    • 2

    2.第一个脚本内容 pach.sh [自动抓取依赖库]

    #!/bin/bash
    exe="xxx 填可执行程序的名称"                     #需要发布的程序名称
    pwd="/home/edward/...填当前文件夹路径"           #所建文件夹的路径
    files=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')    #依赖库
    cp $files $pwd                                #将依赖库复制到当前目录下
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.第二个脚本内容 xxx.sh (xxx为可执行文件名) [为了方便部署程序,如添加环境变量、创建桌面快捷方式]
    执行这个脚本,和直接执行可执行程序的效果相同。

    #!/bin/bash
    appname=`basename $0 | sed s,\.sh$,,`
    dirname=`dirname $0`
    tmp="${dirname#?}"
    if [ "${dirname%$tmp}" != "/" ]; then
    dirname=$PWD/$dirname
    fi
    LD_LIBRARY_PATH=$dirname
    export LD_LIBRARY_PATH
    $dirname/$appname "$@"
    
    #设置动态库搜索路径LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4.给脚本授权并执行

    sudo chmod 777 pack.sh              //赋予权限
    ./pack.sh                           //执行第一个脚本文件,此时新建的文件夹中会多些许东西
    sudo chmod 777 xxx.sh               //赋予权限
    ./xxx.sh                            //执行第二个脚本文件,成功打包
    
    • 1
    • 2
    • 3
    • 4





    三、我写的Qt打包shell脚本

    package.sh

    #!/bin/bash
    
    #1.自动抓取依赖库
    exe="YeecohReader"          #需要发布的程序名称
    pwd="/home/edward/YR/YRPackage_UOS"   #所建文件夹的路径       
    files=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
    cp $files $pwd
    
    #2.手动添加上一步没抓到的缺失依赖库
    cp -r /home/edward/Desktop/lost/* $pwd
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    执行打包脚本,库就都抓取(复制)过来了
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    每天5分钟复习OpenStack(七)内存虚拟化
    开源软件与知识产权:需要注意什么?
    el-table 实现表、表格行、表格列合并
    C 语言共用体(Union)
    7-11 TreeSet
    【英雄哥七月集训】第 27天:图
    计算机毕业设计(附源码)python智能化管理的仓库管理
    Gunicorn ImportError: cannot import name ‘ALREADY_HANDLED‘ from ‘eventlet.wsgi‘
    任务七 特征工程 LDA
    如何利用 Python 建立多元回归方程?
  • 原文地址:https://blog.csdn.net/Edward1027/article/details/125908973