ubuntu 18.04 环境下QT打包

第一步:生成可执行文件,这个没什么好说的,生成可执行文件的时候选择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

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

ubuntu 18.04 环境下QT打包

上一篇:oracle 的服务器进程(PMON, SMON,CKPT,DBWn,LGWR,ARCn)


下一篇:Building SQL Test Cases