2010-07-15 164 views
1

我建立在Visual Studio 2005中的一个项目,需要一些建在Visual Studio 2003中,我得到了链接错误,如在Visual Studio 2005

msvcprt.lib(MSVCP80.dll) : error LNK2005: class std::basic_string[...]already defined in libdiguy.lib(bdiNavMesh.obj) 
,图书馆编译反对MSVCP70.dll代替MSVCP80.dll

我相信我的程序和库都是动态编译而不是静态编译的。我也尝试更改/ MD和/ MDd选项,因为这似乎是类似错误的解决方案。我现在最好的猜测是它需要链接MSVCP70.dll而不是MSVCP80.dll来解决这些错误。有没有一种方法可以针对较老的dll进行编译,以查看是否可以解决这个问题?

谢谢!

回答

0

据我所知你有两个选择:要么获得VS2005版本的库,要么继续使用VS2003头文件和库。第一个是我认为更好的选择,因为你不会从MS在头文件和库文件中修复中受益。但它可能很难甚至不可能。后者可以通过将VS2005目录更改为相应的VS2003目录来完成。我认为你也必须忽略所有的默认库,并明确指定VS2003中的库。

希望这会有所帮助。

干杯,

Sebastiaan