error LNK2005: "public: __thiscall std::basic_ostream<char,struct std::char_traits<char> >::basic_ostream<char,struct std::char_traits<char> >(class std::basic_streambuf<char,struct std::char_traits<char> > *,bool)" (??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits
@D@std@@@1@_N@Z) already defined in msvcprtd.lib(MSVCP80D.dll) libcpmtd.lib
当我尝试在子项目中包含 /clr
选项和 /MDd
选项时出现此错误。
所有项目都单独构建成功,但是当我构建主项目时,它显示了上面类似的错误。
如何解决这个问题?
我很生气。
最佳答案
确保您所有的独立项目都使用相同的运行时库进行编译,这在以下内容中指定:
Properties -> C/C++ -> Code Generation -> Runtime Library
如果您正在使用 /MDd
,请确保所有其他项目也是如此。否则,当您在主项目中将它们全部链接在一起时,它将导入多个版本的运行时库,从而导致您观察到的错误。
关于c++ - 如何解决 Visual Studio 中的链接错误 2005?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/921001/