2014-01-21 57 views
0

我使用qt 4.7和qxmpp 0.7.6在linux上製作了項目,所有工作都很好 我在windows上安裝了Qt 5.2,編譯了qxmpp並安裝了它,它已經成功完成並且在 C:\ Qt \ Qt5.2.0 \ 5.2.0 \ msvc2010 \ include \ qxmpp目錄,似乎一切都很順利 我從linux複製項目,更改qxmpp的includepath,因此它現在適合windows並運行qmake,沒問題 但是當我想運行它有122個錯誤,全部看起來像這樣: mainwindow.obj:-1:error:LNK2019:無法解析的外部符號「__declspec(dllimport)public:virtual _ thiscall QXmppCallManager ::〜QXmppCallManager(void)」( _imp_? 1QXmppCallManager @@ UAE @ XZ)在函數「public:virtual __thiscall」中引用主窗口::〜主窗口(無效)」(?? 1MainWindow @@ UAE @ XZ)Qt 5.2意外的外部符號

所有的錯誤都是qxmpp類

這裏是我的.pro文件

INCLUDEPATH += "C:\Qt\Qt5.2.0\5.2.0\msvc2010\include\qxmpp" 

QT  += core gui network xml multimedia widgets 

TARGET = IM-client 
TEMPLATE = app 


SOURCES += main.cpp\ 
#more sources etc 

任何想法什麼都可以是由此造成的?

+0

怎麼樣庫(又名DLL文件) - 爲windoze,你可能需要爲LIBS添加額外的目錄。 – Huy

回答

2

您沒有將您的項目與qxmpp庫鏈接。如果沒有LIBS += ...系列,我不知道如何編譯即使在linux下。

我的打賭是:你已經刪掉了LIBS這一行,這行代碼留在Linux編譯中,在Windows上沒有意義。您需要像調整INCLUDEPATH一樣對其進行調整。

您可能還需要有兩個平臺分開設置,這樣就不必不斷調整項目文件:

win32 { 
    INCLUDEPATH += ... 
    LIBS += ... 
} 
unix { 
    INCLUDEPATH += ... 
    LIBS += ... 
} 
+0

謝謝我在不知不覺中編輯.pro文件時一定是刪除了這部分內容。 – Ruli

+0

@Ruli:使用版本控制。經常提交。你永遠不會再遇到這樣的問題。 –