2011-07-20 57 views
0

基本上所有的Qt應用程序我嘗試運行將在一個地方崩潰:每一個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上我沒有知道什麼是問題,並且我試圖從Macports重新安裝libiconv,甚至自己構建它,但我仍然遇到同樣的問題。

也許它dlsyms所需的符號(可能會丟失),然後跳轉到地址,導致(因此0x0000000000000000在回溯)。

可能的問題是什麼?(對不起,如果這是錯誤的地方問)

回答

3

我遇到了同樣的問題,並最終構建了Qt庫的調試版本,以找出發生了什麼。看起來Qt庫假定機器上有一個/usr/lib/libconv.dylib。我的機器的解決方案是一個簡單...

須藤LN -s /usr/lib/libiconv.2.dylib /usr/lib/libiconv.dylib

+0

非常感謝! –

+0

你救了我的一天! – xfra35

+0

爲了簡潔,在這裏添加我的0.2CAD評論,並非常感謝@peter提供解決方案。我運行OSX 10.6.8和我無法運行VB的年齡......它總是拋出: '異常類型:EXC_BAD_ACCESS(SIGBUS)'' 異常代碼:KERN_PROTECTION_FAILURE在0x0000000000000000' .. '主題0崩潰:調度隊列:com.apple.main-thread' '0 ??? 0000000000 0 + 0' '1 QtCoreVBox 0x0183b692 QIconvCodec :: convertToUnicode(char const *,...'接受的解決方案也解決了這個問題,以防萬一有人與我有同樣的錯誤。 – Florin

1

聽起來像一個合理的猜測。

你能編譯一個在Mac上崩潰但在Linux或Windows上成功的測試用例嗎?

當然,你可以看看源代碼--Qt函數體的大小往往非常小,因此應該很容易發現錯誤。

+0

我不能重現任何這個問題我的其他機器運行OS X.這是我的主要開發機器,所以我很沮喪,我無法運行/調試任何Qt應用程序(包括IDE)。 –

0

看着你的地址,我可以看到他們是64位。也許你在32位和64位二進制文​​件之間有某種不兼容性?

+0

鏈接器和/或加載器會嗆,不是嗎? – spraff

相關問題