在Visual Studio 2005中编译MSVCP70.dll而不是MSVCP80.dll

时间:2010-07-15 18:11:05

标签: visual-studio-2005 visual-studio-2003 dll

我在Visual Studio 2005中构建一个项目,需要一些在Visual Studio 2003中构建的库。我遇到了像

这样的链接器错误
msvcprt.lib(MSVCP80.dll) : error LNK2005: class std::basic_string[...]already defined in libdiguy.lib(bdiNavMesh.obj)

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

希望这有帮助。

干杯,

Sebastiaan

相关问题