使用Release 模式编译后,release 的目录下包含 Hello1.exe 可执行程序。如果我们需要发布这个程序,那么还需要 QT 的运行库,包括哪些呢?拿一台干净的机器一个个试,终于把这些 Qt 库给找出来,成功运行 QtCore4.dll QtGui4.dll mingwm10.dll libgcc_s_dw2-1.dll 其中要特别注意的是,这些文件应该从 Qt 安装目录下的 [QT安装目录]\qt\bin 子目录中获取,因为[QT安饥迹仿装目录]\bin 也有同样的文件,但是无效。这里仅限 Windows 系统,其他非 Windows 系烂纤统尚未研究。不过也碰到一个小问题, Hello1 程序中有这么一行代码:QStringgbk_msg=codec->toUnicode("你确认要退出HelloQt程序吗?州橡
qt程序动态打包步骤1.从可运行程序的文件中拿出可执行文件
2.终端下使用ldd命令查看需要的连接库
例如 ldd + 可执行文件
3.把ldd查询到的所有需要的库导出
4.编写.sh文档(.sh文件命名必须与告亮可执行文件名字一样例:可执行文件名谨友首 test, .sh 文件名为 test.sh)
.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 $*
5.把所用到的库,可执行文件, .sh文件放到同一目录下
6.终端中进入这一目祥数录,输入:
chmod +x test.sh
7.执行程序点击.sh文件或者终端输入:
./test.sh
对于一些初学Qt的人来说,在软件里面可以运行里面的程序进行调试,但是想炫耀一个自己的劳动成功,给别人看看,就不行了,把.exe文件拷贝给别人,别人无法运行。
如果想运行这个编译成功的软件,你可以这么做
方法一:把编译成功的.exe文件放到逗返你QT的安装目录下,例如:C:\Qt\2010.05\qt\bin,这样点击可以运行(软件运行依山宽饥赖环境的)
方法二:在C:\Qt\2010.05\qt\bin这个路径下面,把软件需要的基本动态链接库文件拷贝到你的release目录下面
MINGWM10.DLL
QtGui4.dll
QtCore4.dll
phonon4.dll
方法三:比较笨哈,就是把C:\Qt\2010.05\qt\bin下面的动态库全部考到一个文件夹中,然后看着删,删除了不能运行的就留下,最后剩下的
就是必要的动巧大态库文件了。
这个得看你软件里面用到了哪些控件,哪些功能,基本的就是这3个动态文件,如果有别的,你拷贝一下就可以了。
第二种方法简单,但是得看你的软件用那些服务了,如果用数据库,就得把数据库QtSql4.dll的动态库加入到里面去,如果用网络了,再
把网络QtNetwork4.dll等动态库加入到里面去,这么说,大家应该都懂得了吧。
这样就可以运行了。但图片文件还是可能显示不出来,解决办法:
把程序文件夹里,建立一个imageformats目录(必须是这个名字),把qt目录下的plugin/imageformats目录下对应的dll文件copy过去。这样动态连接就完成了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)