加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Ubuntu16.04LTS下QT程序打包发布(嵌入式同)

(2018-05-25 09:37:32)
标签:

qt

s5p4418

ubuntu打包程序

嵌入式linux

分类: QT4/5
很多时候,我们需要打包发布一些程序,今天来说一下如何打包发布QT程序:
1、QtCreator使用Release版本编译生成可执行程序
2、将可执行程序复制到/opt/wdz/qtdemo/目录下(这个目录也可以自己建)
3、终端下使用ldd命令查看需要的连接库
4、把ldd查询到的所有需要的库导出
在这里,我们可以自己写一个shell脚本: vim pub.sh
#!/bin/sh

app="widget" #发布的程序名称--app   这是我的可执行程序的名字--widget
appath="/opt/wdz/qtdemo/" #你的路径   这是我的可执行文件的路径 对应的相应的更改
  
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $appath #拷贝依赖库文件到指定路径下

wq!保存退出之后,增加脚本执行权限
#chmod  +x  pub.sh

查看程序依赖动态库路径:
# ldd widget 
linux-vdso.so.1 =>  (0x00007ffc89997000)
libQt5Widgets.so.5 => /opt/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Widgets.so.5 (0x00007f02f8a80000)
libQt5Gui.so.5 => /opt/Qt5.9.1/5.9.1/gcc_64/lib/libQt5Gui.so.5 (0x00007f02f82d2000)
.....................................................................................................省略

注意:如果是嵌入式,我们就要到交叉编译安装环境下取出对应的库文件eg:嵌入式linux下执行
#ldd widget
 linux-vdso.so.1 =>  (0xbeff0000)
        libQt5Widgets.so.5 => /usr/local/Trolltech/Qt-5.9.1-nexell32/lib/libQt5Widgets.so.5 (0xb69d5000)
        libQt5Gui.so.5 => /usr/local/Trolltech/Qt-5.9.1-nexell32/lib/libQt5Gui.so.5 (0xb6573000)
        libQt5Core.so.5 => /usr/local/Trolltech/Qt-5.9.1-nexell32/lib/libQt5Core.so.5 (0xb6072000)
        libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb5f4f000)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。省略

再在/opt/wdz/qtdemo/路径下写一个脚本文件:vim widget.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 "$@"


wq!保存退出
增加可执行权限  :chmod +x widget.sh

自此!!!打包完毕!!!亲测有效
借鉴:
https://www.cnblogs.com/wanghuixi/p/8621853.html

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有