2010-03-07 36 views
1

我正在開發一個需要兩個庫(A和B)的Visual C++ 2008項目,它們都是使用特定的.lib(C)編譯的。當我編譯我的項目時,我再次要求C,因此我在附加庫中指定它。然後一切都會好起來,直到鏈接階段,我得到的錯誤是多次定義的外部符號。有沒有辦法將它們從鏈接中排除?如何在繼承依賴關係時防止.lib的雙重包含?

謝謝
托馬索

+0

你得到了什麼錯誤信息? – bk1e 2010-03-07 20:54:01

+0

我沒有日誌了,閱讀我對我的帖子的回覆,我已經通過在鏈接器調用中放入/ NODEFAULTLIB:library選項來解決問題。 – tunnuz 2010-03-07 21:39:51

回答

2

這聽起來像是你將兩個不同版本的庫(調試/發佈,MT/ST等)。否則,鏈接器會忽略第二個。

+0

A和B都鏈接在同一個C.lib – tunnuz 2010-03-07 18:48:44

+0

@tunnuz:鏈接器的外部符號是否從該庫中向您發出了呼喊?還是他們從運行時庫?如果是後者,那麼這意味着你想鏈接不同版本的RTL。 – sbi 2010-03-07 20:43:16

+0

這些符號來自共享的.lib。 – tunnuz 2010-03-07 21:38:59

0

我通過在鏈接器選項中指定/ NODEFAULTLIB:library來解決問題。我不知道這應該是什麼意思...... Visual Studio建議它。