2013-03-27 237 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