2008-10-13 85 views
6

我試圖鏈接一個Qt應用程序與它的庫和鏈接器(MinGW)噴出如下幾百行,並且我不確定如何繼續。Qt應用程序失敗壯觀

 
cpp: undefined reference to `_Unwind_SjLj_Register' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x29d):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Unregister' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x38c):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Resume' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x4ce):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Register' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x53e):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Unregister' 
c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x635):qcoreapplication_win. 
cpp: undefined reference to `_Unwind_SjLj_Resume' 

回答

1

這已經有一段時間,因爲我沒有任何Qt開發,但只有我記得噴涌而出,這樣的消息的龐大的數字了幾個實例。

  • 包括Qt的文件是一個 不同版本比共享 庫...這發生在我 升級,出於某種原因,你 必須手動升級包括 文件。
  • Qt庫完全缺失......我依稀記得編譯器正在工作,但是當我第一次啓動時,鏈接器失敗。

我在做一個針對ARM處理器的Qt開發,所以在交叉編譯時我還有其他的怪事。

6

我不知道...但對我來說,關於Unwind的嘔吐事件表明,您的庫是否編譯有異常,並且您的應用程序是否編譯了異常,這兩者之間存在不匹配。

如果你想例外,請確保您通過添加下面一行在你的qmake文件中啓用它們:

CONFIG += exceptions 

,或者,如果你不想例外,使用相反

CONFIG -= exceptions 

無論你做什麼,都不要使用C++編譯器選項來自己設置它。據我所知,

0

2個可能的原因:

  1. ,如果你試圖用的gcc3鏈接鏈接GCC4庫。
  2. 您需要-lstdc++標誌到編譯命令的末尾