2013-03-27 246 views
1

當我下面的行添加到我的代碼:奇怪的鏈接錯誤

std::string sFrameTag 

我得到下面的連接錯誤:

Error 34 error LNK2005: "public: __thiscall std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> >(void)" ([email protected]? 
[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) already defined in 
VFPAnalyzerApi.lib(VFPEvaluation.obj) msvcprtd.lib 

我敢肯定sFrameTag只被定義一次,我試着用這個變量的其他名字來確定。我有以下內容:stdio.h,time.h,string

有人可以請指導它是什麼原因導致此錯誤?

+1

請告訴我們您添加到您的實際代碼行(也許一些代碼,如果不是100+線)。它不能是'std :: string sFrameTag',它至少缺少一個分號,我懷疑還有一些缺口或其他的東西。 – us2012 2013-03-27 11:39:58

+1

請參閱http://www.cegui.org.uk/phpBB2/viewtopic.php?f=1&t=5445 – NPE 2013-03-27 11:43:11

+0

您可能會顯示更多細節,包括您在其中定義的文件等等。 – 2013-03-27 11:46:18

回答

1

當我嘗試靜態地包含所有需要的運行時庫時,我也會得到類似的錯誤。檢查當你試圖導入一個靜態鏈接到/ MD選項的庫時,你也需要使用/ MD。

感謝 尼拉吉瑞斯

+0

感謝Niraj,但你能解釋一下我需要做什麼嗎?我不知道如何使用/ MD .. 預先感謝您! – GilLevi 2013-03-27 12:19:59

+0

@ user2215359它支持您正在使用的VC++版本。但是在我的版本中,relavent選項在項目屬性 - C/C++ - 代碼生成 - 運行時庫 – john 2013-03-27 12:46:19

+0

好了,所以我查看了C/C++ - >代碼生成 - >運行時庫中的項目屬性,並將其從/ MDd到/ MD,現在它工作! 謝謝! 但是,有人能解釋這個改變的意義究竟是什麼?提前致謝。 – GilLevi 2013-03-27 13:43:48