zoukankan      html  css  js  c++  java
  • ubuntu 环境下的QT程序打包

    很多的时候 需要将自己写的QT 程序发布一下  所以今天教一下 怎么在ubuntu 环境下将自己的写的Qt 程序打包打包是为了不依赖 开发环境 和开发的库。

    1. QtCreate使用Release版本编译

    2. 从可运行程序的文件中拿出可执行文件,例:untitled23424242

    3. 终端下使用ldd命令查看需要的连接库,例:ldd untitled23424242
    4. 把ldd查询到的所有需要的库导出

    这里提供一个脚本将ldd打印出来的依赖库复制到指定路径:

    #!/bin/sh  
      
    exe="untitled23424242" #发布的程序名称   这是我的可执行程序的名字
    des="/home/alvin/Desktop/untitled23424242/" #你的路径   这是我的可执行文件的路径 对应的相应的更改
      
    deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
    cp $deplist $des 

    说明:exe :要发布的程序名称 des:指定复制的路径
       对应的相应的要更改

    改完之后设置 脚本的权限 

    sudo chmod 777 dabao.sh

    运行脚本

    ./dabao.sh 

    你会发现可执行文件依赖的 库复制到 你指定的路径里了

    5. 编写.sh文档 并将它放在与步骤4同一目录下(.sh文件命名必须与可执行文件名字一样例:可执行文件名 untitled23424242, .sh 文件名为 untitled23424242.sh)
    .sh文件代码如下:

        #!/bin/sh  
        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 "$@"  

    6. 执行这个.sh文件:

    可能因为不行执行需更改权限:

    chmod +x untitled23424242.sh

  • 相关阅读:
    MySQL Server 5.0安装教程
    c++实现一个小算法
    spring core 与 context理解
    关于eclipse的mysql连接配置
    eclipse中创建一个maven项目
    Oracle中的多表查询(笛卡尔积原理)
    Vue进阶
    计算机网络基础
    java框架之springboot
    bootstrap学习
  • 原文地址:https://www.cnblogs.com/wanghuixi/p/8621853.html
Copyright © 2011-2022 走看看