发布 QT 程序时需要哪些文件

红薯 发布于 2010/09/09 09:54
阅读 4K+
收藏 4

用 QT Creator 写了一个最简单的 Hello world 小程序。

使用 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 程序中有这么一行代码:

QString gbk_msg = codec->toUnicode("你确认要退出 Hello Qt 程序吗?");

这段代码在 Windows 7 下没问题,但是 XP 下执行到这行代码就会报程序异常退出。

加载中
0
曾建凯
曾建凯

Qt的转编码有套自己的规则,比如:

在全局指定软件本地的字符编码(有个函数的,具体忘记了,要查查)

new QLabel(QApplication.instance.tr("中文字"));

他会自动根据你的字符编码输出,这点比较智能话。

=======================================================

补充:我记得是:

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));

因为现在不在家,所以一下子没法查到代码。

0
穿越星辰
穿越星辰

红薯啥也涉猎啊。怎么有这么多精力呢?很好奇。

0
红薯
红薯

引用来自#3楼“Javier”的帖子

红薯啥也涉猎啊。怎么有这么多精力呢?很好奇。

有危机感啊,老了,跟不上年轻人的步伐了。

桌面应用开发已经丢了好几年了,觉得 Qt 挺有意思的,就抽空学一下。

0
红薯
红薯

哈哈,乱码问题解决了:

QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QString gbk_msg = tr("你确认要退出 Hello Qt 程序吗?");

0
a
azi

我也觉得java不能服务我一生了,在了解c++中

0
xunxun
xunxun

libgcc_s_dw2-1.dll说明Qt库是用gcc shared版本编译的,用static版本自行编译的就无此文件

mingwm10.dll是mingw的windows run time

0
w
waketer

红薯是高手啊,希望多分享些经验供我这样的新手学习,先在此感谢了

0
Z
ZhouTany

用到不同的类,需要的DLL也不同.LZ列的几个基本都是必须的

0
活的自由
活的自由

可以用dependency walker查看exe依赖的动态链接库:http://www.dependencywalker.com/

0
树相马
树相马

QT4出来的文件是超大的~~~~~~一个库近10M~~~天~~~~

返回顶部
顶部