每个Qt应用程序都崩溃在一个地方?

时间:2011-07-20 12:34:15

标签: qt libiconv

基本上,我尝试运行的所有Qt应用程序都会崩溃:

#0  0x0000000000000000 in ?? ()
#1  0x0000000100f4f570 in QIconvCodec::createIconv_t ()
#2  0x0000000100f5043b in QIconvCodec::convertToUnicode ()
#3  0x0000000100032c7e in QString::fromLocal8Bit ()
#4  0x0000000100e7cb89 in QSystemLocale::fallbackLocale ()
#5  0x00000001000161e0 in QLocalePrivate::updateSystemPrivate ()

我怀疑它与iconv有关,因为它在Mac OS X上不是很“稳定”。我不知道问题是什么,我试图重新安装libiconv Macports甚至自己构建它,我仍然遇到同样的问题。

也许它会摧毁所需的符号(可能会丢失),然后跳转到地址,从而导致(因此回溯中的0x0000000000000000)。

可能出现什么问题?(对不起,如果这是错误的地方)

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,最终构建了Qt库的调试版本,以弄清楚发生了什么。似乎Qt库假设机器上有/usr/lib/libconv.dylib。对于我的机器,解决方案很简单......

sudo ln -s /usr/lib/libiconv.2.dylib /usr/lib/libiconv.dylib

答案 1 :(得分:1)

听起来像是一个合理的猜测。

你能编译一个在Mac上崩溃但在Linux或Windows上成功的测试用例吗?

当然,您可以查看源代码 - Qt函数体往往非常小且高度因素,因此应该很容易看出错误。

答案 2 :(得分:0)

查看您的地址,我看到它们是64位。也许你在32位和64位二进制文​​件之间存在某种类型的不兼容性?