• 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

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

  • 相关阅读:
    IDEA常用快捷键与插件
    14. 几种 SAP ABAP OData 服务的性能评估和测试工具介绍
    _HTML5期末大作业——HTML+CSS+JavaScript平遥古城旅游景点介绍(6页)
    Linux操作系统 - 进程状态
    基于springboot实现职称评审管理系统演示【项目源码+论文说明】分享
    【二叉树】构造二叉搜索树问题
    自压缩llm 为 超长记忆
    Zookeeper------简介与基本概念解释(一)
    [力扣] 剑指 Offer 第二天 - 复杂链表的复制
    SSM - Springboot - MyBatis-Plus 全栈体系(十六)
  • 原文地址:https://blog.csdn.net/Edward1027/article/details/125908973