2012-03-06 71 views
0

我有一個包含來自不同項目的文件的項目。我收到鏈接錯誤......C++鏈接錯誤無法解析的外部符號

「解析外部符號 」公用:_ CDECL CLASSA :: CLASSA(作廢「 (?()CLASSA @@ QEAA @ XZ)中函數引用」 類CLASSA * _cdecl functionB(字符常量*)」(?functionB @@ YAPEAVClassA @@ PEBD @ Z)...

與其他同類型的125個錯誤(構造函數,這是我的錯誤後,剛剛列出的,我使用的類中的每個函數都在其中一個鏈接錯誤中提及)
包含第二個項目文件的路徑包含在我的屬性表中。這個項目本身就很好。
我試圖將該項目添加到我的解決方案,並將其添加爲依賴項。沒有幫助。我試圖添加它在項目中創建的dll - 鏈接器 - 輸入。沒有幫助。
在配置屬性中,運行時庫設置爲/ MTd。
我甚至試圖在我的包含前添加extern「C」。沒有幫助。
我試圖用Debug或Release,x64或Win32來構建它們。我更喜歡Release x64,但我會採取任何行動。
你能幫我 - 告訴我我做錯了什麼,或在哪裏尋找解決這個問題?非常感謝你。

+0

忘了提及我在任何項目中都沒有模板。 – Thalia 2012-03-06 03:10:13

+0

您可以使用適當的錯誤號檢出Visual Studio幫助。 – 2012-03-06 04:15:45

回答

0

我發現我的鏈接輸入中的依賴項被刪除,因爲我沒有明確指定我可以在屬性表中有依賴關係。更改屬性表後,我終於能夠創建一個DLL。

0

當你建立你所依賴的項目時,它應該產生一個lib和一個dll。您需要將該lib與您的項目鏈接起來。請參閱this線程獲取如何鏈接項目中的lib的屏幕截圖。

+0

我試過了 - 我在我的問題的第三段列出了這個嘗試。它沒有任何區別。我仍然遇到同樣的錯誤。 – Thalia 2012-03-06 03:08:46

+0

@ user1217150你說你試圖鏈接dll,而不是lib。 – rob05c 2012-03-06 03:15:31

+0

@ user1217150我懷疑這個問題是名稱改變/調用約定。名稱修改不應該是'cdecl'的問題...您是否使用'_cdecl'驗證了函數的頭聲明和cpp定義?您可以嘗試從一切中刪除'_cdecl'並重新編譯庫項目,並查看是否有幫助。 – rob05c 2012-03-06 03:45:50

相關問題