首页| 论坛| 消息

标题:qt程序发布出现的程序崩溃问题
作者:wayne
日期:2013-11-23 15:01
内容:

我用 Qt-4.8.5 和 MinGW4.4.0 编译的一个程序, 发布的时候带上了所有依赖的dll库,发现 程序直接崩溃了(xxx.exe已停止工作)
.

而在开发环境里,程序运行的非常稳定,正常.

该怎么办呢, help....


#1 [wayne 11-23 15:31]
用 dependency walker 发现,缺这些文件,貌似都是些系统文件??
.
#2 [wayne 11-23 21:32]
我擦. 折腾了一整个下午!
发布的时候, 插件里的dll 不能简单的直接拷贝到exe所在目录!

由于我的程序里面有一段代码 将windows下某进程的GBK编码的输出 转化成utf8 , 即调用了Qt插件里的C:\Qt\4.8.5\plugins\codecs\qcncodecs4.dll


解决办法就是 多写一段代码, 给运行时的程序添加一个相对路径的plugins目录.
a.addLibraryPath("./plugins");
#3 [roywillow 11-27 19:40]
如果不做修改,插件不应该是放在plugins文件夹中的
lz这种情况,应该把codecs文件夹直接放在exe的同目录中,然后里面放qcncodecs4.dll
#4 回 3楼(roywillow) 的帖子 [wayne 11-29 20:37]
是的 ,后来我也发现了.
而且还发现,把qcncodecs4.dll 文件名 更改成3.dll,甚至 ...dll,程序 仍然能正常运行.
但QtCore4.dll 就不能这么做.
#5 回 4楼(wayne) 的帖子 [roywillow 11-29 21:58]
因为Qt搜索插件的时候是直接遍历文件夹中的所有dll,然后从dll的具体内容来确定它是什么插件,所以与文件名无关

<< 1 2 >> (1/2)

回复 发表
主题 版块