心有

知其所以然,方可大道至简。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
正在链接...
libcpmtd.lib(xmutex.obj) : error LNK2005: "public: void __thiscall std::_Mutex::_Lock(void)" (?_Lock@_Mutex@std@@QAEXXZ) 已经在 test_smilgen.obj 中定义
libcpmtd.lib(xmutex.obj) : error LNK2005: "public: void __thiscall std::_Mutex::_Unlock(void)" (?_Unlock@_Mutex@std@@QAEXXZ) 已经在 test_smilgen.obj 中定义
LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;使用 /NODEFAULTLIB:library
../../bin/win32/test_smilgen.exe : fatal error LNK1169: 找到一个或多个多重定义的符号

环境:vs2003

================================
是由于静态库调用了不同的标注C++库造成的,解决办法:在工程属性中,设置“运行时库”对应的Option
Standard C++ Library Characteristics Option Preprocessor directives
LIBCP.LIB Single-threaded, static link /ML  
LIBCPMT.LIB Multithreaded, static link /MT _MT
MSVCPRT.LIB Multithreaded, dynamic link (import library for MSVCP71.dll) /MD _MT, _DLL
LIBCPD.LIB Single-threaded, static link /MLd _DEBUG
LIBCPMTD.LIB Multithreaded, static link /MTd _DEBUG, _MT
MSVCPRTD.LIB Multithreaded, dynamic link (import library for MSVCP71D.DLL) /MDd _DEBUG, _MT, _DLL
posted on 2005-09-20 10:58  心有  阅读(1654)  评论(1编辑  收藏  举报