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

现在可以将文件夹复制到需要运行的电脑上,需要给CXXtest和CXXtest.sh执行权限,然后执行./CXXtest.sh。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM