C ++链接问题

时间:2009-08-06 13:02:11

标签: c++ visual-studio

编译项目时出错。 我正在尝试使用visual studio链接到我在Windows上的库。

尝试创建obkect(使用new)时,出现以下错误:

  

错误2错误LNK2005:“public:__ thishisall std :: basic_string,class std :: allocator> :: ~basic_string,class std :: allocator>(void)”(?? 1?$ basic_string @ DU? $ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ QAE @ XZ)已在RMLibV053.lib(Inifile.obj)中定义msvcprtd.lib

我用过#ifndef 我使用了禁用警告

4 个答案:

答案 0 :(得分:3)

可能是您的代码设置为在构建时使用与PTLibV002.lib库不同的运行时环境(单线程,多线程,多线程DLL)。

答案 1 :(得分:2)

如果编译PTLibV002.lib以使用静态链接的C ++库,并且您的二进制文件使用C ++库作为DLL,则这是您收到的链接错误。这是因为PTLibV002.lib将包含它使用的STL函数的定义,而您的二进制文件包含指向C ++库DLL的另一个定义。

答案 2 :(得分:0)

可能你在其他库中添加了类似的库。

答案 3 :(得分:0)

正如Ferruccio之前所解释的那样。

我在项目的visual studio配置中使用:使用设置编译以使用动态链接运行时库:多线程调试DLL(/ MDd)而不是多线程调试(/ MTd)。