函数重复定义的编译错误,MSVCRTD.lib库和LIBCMTD.lib库重复定义函数

编译错误:

1>正在编译...
1>peer_connection_client.cc
1>c:\program files\microsoft visual studio 9.0\vc\include\typeinfo(139) : warning C4275: 非 dll 接口 class“stdext::exception”用作 dll 接口 class“std::bad_cast”的基
1>        c:\program files\microsoft visual studio 9.0\vc\include\exception(241) : 参见“stdext::exception”的声明
1>        c:\program files\microsoft visual studio 9.0\vc\include\typeinfo(138) : 参见“std::bad_cast”的声明
1>c:\program files\microsoft visual studio 9.0\vc\include\typeinfo(160) : warning C4275: 非 dll 接口 class“stdext::exception”用作 dll 接口 class“std::bad_typeid”的基
1>        c:\program files\microsoft visual studio 9.0\vc\include\exception(241) : 参见“stdext::exception”的声明
1>        c:\program files\microsoft visual studio 9.0\vc\include\typeinfo(159) : 参见“std::bad_typeid”的声明
1>正在生成代码...
1>正在编译资源...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>正在链接...
1>conductor.obj : warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/SAFESEH”规范)
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) 已经在 libjingle.lib(common.obj) 中定义
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) 已经在 libjingle.lib(common.obj) 中定义
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) 已经在 libjingle.lib(common.obj) 中定义
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z) 已经在 libjingle.lib(socketaddress.obj) 中定义
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::operator<<(int)" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z) 已经在 libjingle.lib(common.obj) 中定义
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::empty(void)const " (?empty@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE_NXZ) 已经在 libjingle.lib(socketaddress.obj) 中定义
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) 已经在 libjingle.lib(common.obj) 中定义
1>msvcprtd.lib(MSVCP90D.dll) : error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl std::operator+<char,struct std::char_traits<char>,class std::allocator<char> >(char const *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@PBDABV10@@Z) 已经在 libjingle.lib(socketaddress.obj) 中定义
1>LIBCMTD.lib(mlock.obj) : error LNK2005: __unlock 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
1>LIBCMTD.lib(winxfltr.obj) : error LNK2005: ___CppXcptFilter 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
1>LIBCMTD.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
1>LIBCMTD.lib(atox.obj) : error LNK2005: _atoi 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
1>LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_a 已经在 MSVCRTD.lib(cinitexe.obj) 中定义
1>LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xi_z 已经在 MSVCRTD.lib(cinitexe.obj) 中定义
1>LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_a 已经在 MSVCRTD.lib(cinitexe.obj) 中定义
1>LIBCMTD.lib(crt0init.obj) : error LNK2005: ___xc_z 已经在 MSVCRTD.lib(cinitexe.obj) 中定义
1>LIBCMTD.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
1>LIBCMTD.lib(getenv.obj) : error LNK2005: _getenv 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
1>LIBCMTD.lib(sprintf.obj) : error LNK2005: _sprintf_s 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
1>LIBCMTD.lib(dosmap.obj) : error LNK2005: __errno 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
1>LIBCMTD.lib(strtol.obj) : error LNK2005: _strtoul 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
1>LIBCMTD.lib(dbgrptw.obj) : error LNK2005: __CrtDbgReportW 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
1>   正在创建库 ..\..\..\build\Debug\lib\peerconnection_activex.lib 和对象 ..\..\..\build\Debug\lib\peerconnection_activex.exp
1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: class webrtc::PeerConnection * __thiscall webrtc::PeerConnectionFactory::CreatePeerConnection(class cricket::PortAllocator *,class talk_base::Thread *)" (?CreatePeerConnection@PeerConnectionFactory@webrtc@@QAEPAVPeerConnection@2@PAVPortAllocator@cricket@@PAVThread@talk_base@@@Z),该符号在函数 "protected: bool __thiscall Conductor::InitializePeerConnection(void)" (?InitializePeerConnection@Conductor@@IAE_NXZ) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall cricket::BasicPortAllocator::BasicPortAllocator(class talk_base::NetworkManager *,class talk_base::SocketAddress const &,class talk_base::SocketAddress const &,class talk_base::SocketAddress const &,class talk_base::SocketAddress const &)" (??0BasicPortAllocator@cricket@@QAE@PAVNetworkManager@talk_base@@ABVSocketAddress@3@111@Z),该符号在函数 "protected: bool __thiscall Conductor::InitializePeerConnection(void)" (?InitializePeerConnection@Conductor@@IAE_NXZ) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: bool __thiscall webrtc::PeerConnectionFactory::Initialize(void)" (?Initialize@PeerConnectionFactory@webrtc@@QAE_NXZ),该符号在函数 "protected: bool __thiscall Conductor::InitializePeerConnection(void)" (?InitializePeerConnection@Conductor@@IAE_NXZ) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall webrtc::PeerConnectionFactory::PeerConnectionFactory(class talk_base::Thread *)" (??0PeerConnectionFactory@webrtc@@QAE@PAVThread@talk_base@@@Z),该符号在函数 "protected: bool __thiscall Conductor::InitializePeerConnection(void)" (?InitializePeerConnection@Conductor@@IAE_NXZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: static int __cdecl webrtc::Trace::SetLevelFilter(unsigned int)" (?SetLevelFilter@Trace@webrtc@@SAHI@Z),该符号在函数_wWinMain@16中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: static int __cdecl webrtc::Trace::SetTraceFile(char const *,bool)" (?SetTraceFile@Trace@webrtc@@SAHPBD_N@Z),该符号在函数_wWinMain@16中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: static void __cdecl webrtc::Trace::CreateTrace(void)" (?CreateTrace@Trace@webrtc@@SAXXZ),该符号在函数_wWinMain@16 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall talk_base::Win32Socket::Win32Socket(void)" (??0Win32Socket@talk_base@@QAE@XZ),该符号在函数 "class talk_base::AsyncSocket * __cdecl `anonymous namespace'::CreateClientSocket(void)" (?CreateClientSocket@?A0x8e6b366e@@YAPAVAsyncSocket@talk_base@@XZ) 中被引用
1>LIBCMTD.lib(crt0.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
1>..\..\..\build\Debug\peerconnection_activex.ocx : fatal error LNK1120: 9 个无法解析的外部命令
1>生成日志保存在“file://f:\lixa\pro\webrtc\WebRTCSrc\trunk\build\Debug\obj\peerconnection_activex\BuildLog.htm”
1>peerconnection_activex - 93 个错误,13 个警告
========== 生成: 成功 0 个,失败 1 个,最新 134 个,跳过 0 个 ==========

解决办法:

应该是编译的时候使用的库配置类型与引用的库类型(动态库或静态库)不一致导致的。

修改工程属性->常规->配置类型为 动态库或静态库 就可以了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值