基本上,我尝试运行的所有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
)。
可能出现什么问题?(对不起,如果这是错误的地方)
答案 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位二进制文件之间存在某种类型的不兼容性?