编译项目时出错。 我正在尝试使用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 我使用了禁用警告
答案 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)。