ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

ubuntu 18.04 环境下QT打包

2020-06-10 13:03:34  阅读:271  来源: 互联网

标签:可执行文件 CXXtest QT 18.04 callipers sh ubuntu dirname 文件夹


第一步:生成可执行文件,这个没什么好说的,生成可执行文件的时候选择Release版本。还有一个就是在*.pro文件中添加上一句代码:

QMAKE_LFLAGS += -no-pie

不加这句代码的话,生成的可执行文件不能双击运行,终端是可以启动的但是个人觉得并不方便。

第二步:在合适的位置新建一个文件夹,比如我是在/home/lxb/callipers,在将qt生成的可执行文件拷贝过来放到该目录下。(qt生成的编译生成的文件目录:/home/lxb/QTprofile/build-CXXtest-Desktop_Qt_5_12_5_GCC_64bit-Release),我的可执行文件是在这个目录下面的名字为CXXtest的文件。我们把CXXtest拷贝/home/lxb/callipers里。在文件夹里新建一个lib文件夹用了装依赖的链接库。在callipers文件夹下新建脚本文件config.sh内容如下:

 

#!/bin/sh  
  
exe="CXXtest" #发布的程序名称   这是我的可执行程序的名字
des="/home/lxb/callipers/lib/" #这个是用来存放依赖库的位置
  
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des

修改下文件的权限:

sudo chmod 777 config.sh

执行脚本:

./config.sh 

这样所有依赖的库都被复制到了lib目录下。

第三步:现在需要将程序和依赖库链接起来,在callipers目录下新建文件CXXtest.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 "$@"

给文件添加一下执行权限并执行:

sudo chmod +x CXXtest.sh

./CXXtest.sh

现在可以将文件夹复制到需要运行的电脑上了。

标签:可执行文件,CXXtest,QT,18.04,callipers,sh,ubuntu,dirname,文件夹
来源: https://www.cnblogs.com/longxianbiao/p/13084412.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有