msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Container_base12::~_Container

情况:

1>------ 已启动生成: 项目: OgreBulletTest, 配置: Debug Win32 ------

1>生成启动时间为 2011/9/29 22:17:21。

1>InitializeBuildStatus:

1>  正在对“Debug\OgreBulletTest.unsuccessfulbuild”执行 Touch 任务。

1>ClCompile:

1>  所有输出均为最新。

1>ManifestResourceCompile:

1>  所有输出均为最新。

1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ) 已经在 OgreBulletCollisions_d.lib(OgreBulletCollisionsCompoundShape.obj) 中定义

1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: __thiscall std::_Container_base12::_Container_base12(void)" (??0_Container_base12@std@@QAE@XZ) 已经在 OgreBulletCollisions_d.lib(OgreBulletCollisionsCompoundShape.obj) 中定义

1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __thiscall std::_Container_base12::_Orphan_all(void)" (?_Orphan_all@_Container_base12@std@@QAEXXZ) 已经在 OgreBulletCollisions_d.lib(OgreBulletCollisionsShape.obj) 中定义

1>msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: struct std::_Iterator_base12 * * __thiscall std::_Container_base12::_Getpfirst(void)const " (?_Getpfirst@_Container_base12@std@@QBEPAPAU_Iterator_base12@2@XZ) 已经在 OgreBulletCollisions_d.lib(OgreBulletCollisionsShape.obj) 中定义

1>     正在创建库 G:\temp_complier_file\OgreBulletTest\Debug\OgreBulletTest.lib 和对象 G:\temp_complier_file\OgreBulletTest\Debug\OgreBulletTest.exp

1>LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

1>G:\temp_complier_file\OgreBulletTest\Debug\OgreBulletTest.exe : fatal error LNK1169: 找到一个或多个多重定义的符号

1>

1>生成失败。

1>

1>已用时间 00:00:00.52

========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

 

 

 

解决方法:

msvcprtd.lib表示要用静态库,所以在生成要链接到这个项目的lib时,Debug版本lib生成选项要用/MTd,Release版本lib生成选项要用/MT。

你可能感兴趣的:(C++)