您的位置:首页 > 编程语言 > Qt开发

Qt程序发布 ubuntu

2014-09-02 14:55 155 查看
文章来源:http://blog.sina.com.cn/s/blog_7783381f0100zmye.html(经过验证)

前两天写了个Qt程序,想试试发布一下,好让它能在没装Qt的机器上也能运行,折腾了好久,今天终于弄清楚了!

首先,我的系统是ubuntu 10.10,Qt版本为4.7。

第一步:cd到要发布程序目录下(.h,.cpp所在的文件夹),执行

make clean (撤销在此之前的编译)

qmake -config release (用release版编译,这样程序会小很多)

make

第二步:编辑.sh脚本文件。在该目录下新建一个和可执行文件同名的.sh文件(比如aa为可执行文件,则新建aa.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 $*

保存。

第三步:找出依赖库。要发布,首先要把可执行程序所依赖的库找出来,拷到可执行文件所在的目录下。在终端下cd到可执行程序目录,执行 ldd aa(aa为可执行文件名),即可看到列出的一大段依赖库(.so文件)。接下来,什么都别想,一个一个把它们找出来,一个都不能少!(纯属体力活,不知道有没有简单点的办法……)。

特别注意:ldd列出来的都是共享库的链接,你查找的时候会发现文件的右上角都有个黑色箭头,同时,找出来的还不止一个文件,如下图:



这些带箭头的都是链接文件,它们都指向一个共享库(右键上图第一个文件,从属性可以看到它指向libQtCore.so.4.7.0).保险起见,把这三个都拷进去!

完成上面的体力活后,我们接下来就是用U盘把程序拷到别的机器上去运行了。这里问题又来了,你会发现复制时出错,提示:“复制libQtCore.so.4时出错“,”文件系统不支持符号链接“。这时候,解决方法有两个:

1、把程序压缩打包,然后复制过去

2、将共享库重命名为链接的名称。以上图中为例,将libQtCore.so.4.7.0重命名为:libQtCore.so.4,然后复制过去,带箭头的两个就不要了。

现在,大功告成,你可以运行你写的程序了。切换为root身份,cd到程序目录下,执行:

./aa.sh(aa为可执行文件名称),可能你会碰到无法执行的问题,这时,执行:

chmod +x aa.sh就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: