编译2014819版本的webrtc

发布于 2022-11-21 | 作者: 夕妹 | 来源: CSDN博客 | 转载于: CSDN博客

    项目需要支持xp的webrtc,无奈之下只好去编译2014819版本的webrtc, 此版本需要WDK的支持,相关的问题可以看这篇博客http://blog.csdn.net/nonmarking/article/details/46785197,感谢这位老兄!

   不过我在编译的过程中又碰到了另外的一些问题,在编译all工程之后,所有的lib项目都编译成功,但是有几个exe项目就是无法编译成功,其中就包括很重要的peerconnection_client!各种提示无法识别的符号。

 --------------------------------------------------------------------------

   1>------ 已启动生成:  项目: peerconnection_client, 配置: Debug Win32 ------
1>conductor.obj : error LNK2019: 无法解析的外部符号 "void __cdecl rtc::LogAssert(char const *,char const *,int,char const *)" (?LogAssert@rtc@@YAXPBD0H0@Z),该符号在函数 "bool __cdecl rtc::AssertNoBreak(bool,char const *,char const *,int,char const *)" (?AssertNoBreak@rtc@@YA_N_NPBD1H1@Z) 中被引用
1>peer_connection_client.obj : error LNK2001: 无法解析的外部符号 "void __cdecl rtc::LogAssert(char const *,char const *,int,char const *)" (?LogAssert@rtc@@YAXPBD0H0@Z)
1>main.obj : error LNK2001: 无法解析的外部符号 "void __cdecl rtc::LogAssert(char const *,char const *,int,char const *)" (?LogAssert@rtc@@YAXPBD0H0@Z)
1>main_wnd.obj : error LNK2001: 无法解析的外部符号 "void __cdecl rtc::LogAssert(char const *,char const *,int,char const *)" (?LogAssert@rtc@@YAXPBD0H0@Z)
1>conductor.obj : error LNK2019: 无法解析的外部符号 "class webrtc::IceCandidateInterface * __cdecl webrtc::CreateIceCandidate(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?CreateIceCandidate@webrtc@@YAPAVIceCandidateInterface@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H0@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnMessageFromPeer(int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?OnMessageFromPeer@Conductor@@MAEXHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "class webrtc::SessionDescriptionInterface * __cdecl webrtc::CreateSessionDescription(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?CreateSessionDescription@webrtc@@YAPAVSessionDescriptionInterface@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnMessageFromPeer(int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?OnMessageFromPeer@Conductor@@MAEXHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "class rtc::scoped_refptr<class webrtc::PeerConnectionFactoryInterface> __cdecl webrtc::CreatePeerConnectionFactory(void)" (?CreatePeerConnectionFactory@webrtc@@YA?AV?$scoped_refptr@VPeerConnectionFactoryInterface@webrtc@@@rtc@@XZ),该符号在函数 "protected: bool __thiscall Conductor::InitializePeerConnection(void)" (?InitializePeerConnection@Conductor@@IAE_NXZ) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::LogMessage::LogMessage(char const *,int,enum rtc::LoggingSeverity,enum rtc::LogErrorContext,int,char const *)" (??0LogMessage@rtc@@QAE@PBDHW4LoggingSeverity@1@W4LogErrorContext@1@H0@Z),该符号在函数 "protected: void __thiscall Conductor::AddStreams(void)" (?AddStreams@Conductor@@IAEXXZ) 中被引用
1>peer_connection_client.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall rtc::LogMessage::LogMessage(char const *,int,enum rtc::LoggingSeverity,enum rtc::LogErrorContext,int,char const *)" (??0LogMessage@rtc@@QAE@PBDHW4LoggingSeverity@1@W4LogErrorContext@1@H0@Z)
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::LogMessage::~LogMessage(void)" (??1LogMessage@rtc@@QAE@XZ),该符号在函数 "protected: void __thiscall Conductor::AddStreams(void)" (?AddStreams@Conductor@@IAEXXZ) 中被引用
1>peer_connection_client.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall rtc::LogMessage::~LogMessage(void)" (??1LogMessage@rtc@@QAE@XZ)
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: static class cricket::DeviceManagerInterface * __cdecl cricket::DeviceManagerFactory::Create(void)" (?Create@DeviceManagerFactory@cricket@@SAPAVDeviceManagerInterface@2@XZ),该符号在函数 "protected: class cricket::VideoCapturer * __thiscall Conductor::OpenVideoCaptureDevice(void)" (?OpenVideoCaptureDevice@Conductor@@IAEPAVVideoCapturer@cricket@@XZ) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Json::Value::Value(enum Json::ValueType)" (??0Value@Json@@QAE@W4ValueType@1@@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnIceCandidate(class webrtc::IceCandidateInterface const *)" (?OnIceCandidate@Conductor@@MAEXPBVIceCandidateInterface@webrtc@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Json::Value::Value(int)" (??0Value@Json@@QAE@H@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnIceCandidate(class webrtc::IceCandidateInterface const *)" (?OnIceCandidate@Conductor@@MAEXPBVIceCandidateInterface@webrtc@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Json::Value::Value(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0Value@Json@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnIceCandidate(class webrtc::IceCandidateInterface const *)" (?OnIceCandidate@Conductor@@MAEXPBVIceCandidateInterface@webrtc@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Json::Value::~Value(void)" (??1Value@Json@@QAE@XZ),该符号在函数 "protected: virtual void __thiscall Conductor::OnIceCandidate(class webrtc::IceCandidateInterface const *)" (?OnIceCandidate@Conductor@@MAEXPBVIceCandidateInterface@webrtc@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: class Json::Value & __thiscall Json::Value::operator=(class Json::Value const &)" (??4Value@Json@@QAEAAV01@ABV01@@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnIceCandidate(class webrtc::IceCandidateInterface const *)" (?OnIceCandidate@Conductor@@MAEXPBVIceCandidateInterface@webrtc@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: class Json::Value & __thiscall Json::Value::operator[](char const *)" (??AValue@Json@@QAEAAV01@PBD@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnIceCandidate(class webrtc::IceCandidateInterface const *)" (?OnIceCandidate@Conductor@@MAEXPBVIceCandidateInterface@webrtc@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Json::Reader::Reader(void)" (??0Reader@Json@@QAE@XZ),该符号在函数 "protected: virtual void __thiscall Conductor::OnMessageFromPeer(int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?OnMessageFromPeer@Conductor@@MAEXHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: bool __thiscall Json::Reader::parse(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class Json::Value &,bool)" (?parse@Reader@Json@@QAE_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAVValue@2@_N@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnMessageFromPeer(int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?OnMessageFromPeer@Conductor@@MAEXHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: virtual __thiscall Json::Writer::~Writer(void)" (??1Writer@Json@@UAE@XZ),该符号在函数 "public: virtual __thiscall Json::StyledWriter::~StyledWriter(void)" (??1StyledWriter@Json@@UAE@XZ) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Json::StyledWriter::StyledWriter(void)" (??0StyledWriter@Json@@QAE@XZ),该符号在函数 "protected: virtual void __thiscall Conductor::OnIceCandidate(class webrtc::IceCandidateInterface const *)" (?OnIceCandidate@Conductor@@MAEXPBVIceCandidateInterface@webrtc@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall Json::StyledWriter::write(class Json::Value const &)" (?write@StyledWriter@Json@@UAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABVValue@2@@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnIceCandidate(class webrtc::IceCandidateInterface const *)" (?OnIceCandidate@Conductor@@MAEXPBVIceCandidateInterface@webrtc@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "bool __cdecl GetIntFromJsonObject(class Json::Value const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int *)" (?GetIntFromJsonObject@@YA_NABVValue@Json@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAH@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnMessageFromPeer(int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?OnMessageFromPeer@Conductor@@MAEXHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
1>conductor.obj : error LNK2019: 无法解析的外部符号 "bool __cdecl GetStringFromJsonObject(class Json::Value const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)" (?GetStringFromJsonObject@@YA_NABVValue@Json@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PAV34@@Z),该符号在函数 "protected: virtual void __thiscall Conductor::OnMessageFromPeer(int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?OnMessageFromPeer@Conductor@@MAEXHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 中被引用
1>conductor.obj : error LNK2001: 无法解析的外部符号 "public: static char const * const webrtc::SessionDescriptionInterface::kOffer" (?kOffer@SessionDescriptionInterface@webrtc@@2QBDB)
1>conductor.obj : error LNK2001: 无法解析的外部符号 "private: static int rtc::LogMessage::min_sev_" (?min_sev_@LogMessage@rtc@@0HA)
1>peer_connection_client.obj : error LNK2001: 无法解析的外部符号 "private: static int rtc::LogMessage::min_sev_" (?min_sev_@LogMessage@rtc@@0HA)
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::SocketAddress::SocketAddress(void)" (??0SocketAddress@rtc@@QAE@XZ),该符号在函数 "public: __thiscall PeerConnectionClient::PeerConnectionClient(void)" (??0PeerConnectionClient@@QAE@XZ) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::SocketAddress::SocketAddress(class rtc::SocketAddress const &)" (??0SocketAddress@rtc@@QAE@ABV01@@Z),该符号在函数 "public: class rtc::SocketAddress __thiscall rtc::AsyncResolverInterface::address(void)const " (?address@AsyncResolverInterface@rtc@@QBE?AVSocketAddress@2@XZ) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: class rtc::SocketAddress & __thiscall rtc::SocketAddress::operator=(class rtc::SocketAddress const &)" (??4SocketAddress@rtc@@QAEAAV01@ABV01@@Z),该符号在函数 "protected: void __thiscall PeerConnectionClient::OnResolveResult(class rtc::AsyncResolverInterface *)" (?OnResolveResult@PeerConnectionClient@@IAEXPAVAsyncResolverInterface@rtc@@@Z) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall rtc::SocketAddress::SetIP(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?SetIP@SocketAddress@rtc@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z),该符号在函数 "public: void __thiscall PeerConnectionClient::Connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?Connect@PeerConnectionClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H0@Z) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall rtc::SocketAddress::SetPort(int)" (?SetPort@SocketAddress@rtc@@QAEXH@Z),该符号在函数 "public: void __thiscall PeerConnectionClient::Connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?Connect@PeerConnectionClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H0@Z) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: class rtc::IPAddress const & __thiscall rtc::SocketAddress::ipaddr(void)const " (?ipaddr@SocketAddress@rtc@@QBEABVIPAddress@2@XZ),该符号在函数 "protected: void __thiscall PeerConnectionClient::DoConnect(void)" (?DoConnect@PeerConnectionClient@@IAEXXZ) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: bool __thiscall rtc::SocketAddress::IsUnresolvedIP(void)const " (?IsUnresolvedIP@SocketAddress@rtc@@QBE_NXZ),该符号在函数 "public: bool __thiscall rtc::SocketAddress::IsUnresolved(void)const " (?IsUnresolved@SocketAddress@rtc@@QBE_NXZ) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: virtual __thiscall rtc::MessageHandler::~MessageHandler(void)" (??1MessageHandler@rtc@@UAE@XZ),该符号在函数 "public: virtual __thiscall PeerConnectionClient::~PeerConnectionClient(void)" (??1PeerConnectionClient@@UAE@XZ) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: static class rtc::Thread * __cdecl rtc::Thread::Current(void)" (?Current@Thread@rtc@@SAPAV12@XZ),该符号在函数 "protected: void __thiscall PeerConnectionClient::OnClose(class rtc::AsyncSocket *,int)" (?OnClose@PeerConnectionClient@@IAEXPAVAsyncSocket@rtc@@H@Z) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::AsyncResolver::AsyncResolver(void)" (??0AsyncResolver@rtc@@QAE@XZ),该符号在函数 "public: void __thiscall PeerConnectionClient::Connect(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?Connect@PeerConnectionClient@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H0@Z) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::Win32Socket::Win32Socket(void)" (??0Win32Socket@rtc@@QAE@XZ),该符号在函数 "class rtc::AsyncSocket * __cdecl `anonymous namespace'::CreateClientSocket(int)" (?CreateClientSocket@?A0xa9cc75fa@@YAPAVAsyncSocket@rtc@@H@Z) 中被引用
1>peer_connection_client.obj : error LNK2019: 无法解析的外部符号 "public: bool __thiscall rtc::Win32Socket::CreateT(int,int)" (?CreateT@Win32Socket@rtc@@QAE_NHH@Z),该符号在函数 "class rtc::AsyncSocket * __cdecl `anonymous namespace'::CreateClientSocket(int)" (?CreateClientSocket@?A0xa9cc75fa@@YAPAVAsyncSocket@rtc@@H@Z) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "unsigned int __cdecl rtc::Time(void)" (?Time@rtc@@YAIXZ),该符号在函数 "int __cdecl rtc::TimeUntil(unsigned int)" (?TimeUntil@rtc@@YAHI@Z) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "unsigned int __cdecl rtc::TimeAfter(int)" (?TimeAfter@rtc@@YAIH@Z),该符号在函数 "public: virtual void __thiscall rtc::MessageQueue::PostDelayed(int,class rtc::MessageHandler *,unsigned int,class rtc::MessageData *)" (?PostDelayed@MessageQueue@rtc@@UAEXHPAVMessageHandler@2@IPAVMessageData@2@@Z) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "int __cdecl rtc::TimeDiff(unsigned int,unsigned int)" (?TimeDiff@rtc@@YAHII@Z),该符号在函数 "int __cdecl rtc::TimeUntil(unsigned int)" (?TimeUntil@rtc@@YAHI@Z) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall rtc::MessageQueue::set_socketserver(class rtc::SocketServer *)" (?set_socketserver@MessageQueue@rtc@@QAEXPAVSocketServer@2@@Z),该符号在函数 "public: __thiscall rtc::Win32Thread::Win32Thread(void)" (??0Win32Thread@rtc@@QAE@XZ) 中被引用
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall rtc::MessageQueue::IsQuitting(void)" (?IsQuitting@MessageQueue@rtc@@UAE_NXZ)
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall rtc::MessageQueue::Restart(void)" (?Restart@MessageQueue@rtc@@UAEXXZ)
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall rtc::MessageQueue::Get(struct rtc::Message *,int,bool)" (?Get@MessageQueue@rtc@@UAE_NPAUMessage@2@H_N@Z)
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual bool __thiscall rtc::MessageQueue::Peek(struct rtc::Message *,int)" (?Peek@MessageQueue@rtc@@UAE_NPAUMessage@2@H@Z)
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall rtc::MessageQueue::Post(class rtc::MessageHandler *,unsigned int,class rtc::MessageData *,bool)" (?Post@MessageQueue@rtc@@UAEXPAVMessageHandler@2@IPAVMessageData@2@_N@Z)
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall rtc::MessageQueue::Dispatch(struct rtc::Message *)" (?Dispatch@MessageQueue@rtc@@UAEXPAUMessage@2@@Z)
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall rtc::MessageQueue::GetDelay(void)" (?GetDelay@MessageQueue@rtc@@UAEHXZ)
1>main.obj : error LNK2019: 无法解析的外部符号 "protected: void __thiscall rtc::MessageQueue::DoDelayPost(int,unsigned int,class rtc::MessageHandler *,unsigned int,class rtc::MessageData *)" (?DoDelayPost@MessageQueue@rtc@@IAEXHIPAVMessageHandler@2@IPAVMessageData@2@@Z),该符号在函数 "public: virtual void __thiscall rtc::MessageQueue::PostAt(unsigned int,class rtc::MessageHandler *,unsigned int,class rtc::MessageData *)" (?PostAt@MessageQueue@rtc@@UAEXIPAVMessageHandler@2@IPAVMessageData@2@@Z) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: static class rtc::ThreadManager * __cdecl rtc::ThreadManager::Instance(void)" (?Instance@ThreadManager@rtc@@SAPAV12@XZ),该符号在函数 _wWinMain@16 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall rtc::ThreadManager::SetCurrentThread(class rtc::Thread *)" (?SetCurrentThread@ThreadManager@rtc@@QAEXPAVThread@2@@Z),该符号在函数 _wWinMain@16 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::Thread::Thread(class rtc::SocketServer *)" (??0Thread@rtc@@QAE@PAVSocketServer@1@@Z),该符号在函数 "public: __thiscall rtc::Win32Thread::Win32Thread(void)" (??0Win32Thread@rtc@@QAE@XZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: virtual __thiscall rtc::Thread::~Thread(void)" (??1Thread@rtc@@UAE@XZ),该符号在函数 "public: virtual __thiscall rtc::Win32Thread::~Win32Thread(void)" (??1Win32Thread@rtc@@UAE@XZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: virtual void __thiscall rtc::Thread::Stop(void)" (?Stop@Thread@rtc@@UAEXXZ),该符号在函数 "public: virtual __thiscall rtc::Win32Thread::~Win32Thread(void)" (??1Win32Thread@rtc@@UAE@XZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: virtual void __thiscall rtc::Thread::Run(void)" (?Run@Thread@rtc@@UAEXXZ),该符号在函数 "public: virtual void __thiscall rtc::Win32Thread::Run(void)" (?Run@Win32Thread@rtc@@UAEXXZ) 中被引用
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall rtc::Thread::Send(class rtc::MessageHandler *,unsigned int,class rtc::MessageData *)" (?Send@Thread@rtc@@UAEXPAVMessageHandler@2@IPAVMessageData@2@@Z)
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall rtc::Thread::Clear(class rtc::MessageHandler *,unsigned int,class std::list<struct rtc::Message,class std::allocator<struct rtc::Message> > *)" (?Clear@Thread@rtc@@UAEXPAVMessageHandler@2@IPAV?$list@UMessage@rtc@@V?$allocator@UMessage@rtc@@@std@@@std@@@Z)
1>main.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall rtc::Thread::ReceiveSends(void)" (?ReceiveSends@Thread@rtc@@UAEXXZ)
1>main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::Flag::Flag(char const *,char const *,char const *,enum rtc::Flag::Type,void *,union rtc::FlagValue)" (??0Flag@rtc@@QAE@PBD00W4Type@01@PAXTFlagValue@1@@Z),该符号在函数 "void __cdecl `dynamic initializer for 'Flag_autocall''(void)" (??__EFlag_autocall@@YAXXZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: static void __cdecl rtc::FlagList::Print(char const *,bool)" (?Print@FlagList@rtc@@SAXPBD_N@Z),该符号在函数 _wWinMain@16 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: static int __cdecl rtc::FlagList::SetFlagsFromCommandLine(int *,char const * *,bool)" (?SetFlagsFromCommandLine@FlagList@rtc@@SAHPAHPAPBD_N@Z),该符号在函数 "public: static int __cdecl rtc::FlagList::SetFlagsFromCommandLine(int *,char * *,bool)" (?SetFlagsFromCommandLine@FlagList@rtc@@SAHPAHPAPAD_N@Z) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::WindowsCommandLineArguments::WindowsCommandLineArguments(void)" (??0WindowsCommandLineArguments@rtc@@QAE@XZ),该符号在函数 _wWinMain@16 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::WindowsCommandLineArguments::~WindowsCommandLineArguments(void)" (??1WindowsCommandLineArguments@rtc@@QAE@XZ),该符号在函数 _wWinMain@16 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "bool __cdecl rtc::InitializeSSL(bool (__cdecl*)(void *))" (?InitializeSSL@rtc@@YA_NP6A_NPAX@Z@Z),该符号在函数 _wWinMain@16 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "bool __cdecl rtc::CleanupSSL(void)" (?CleanupSSL@rtc@@YA_NXZ),该符号在函数 _wWinMain@16 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "void __cdecl rtc::EnsureWinsockInit(void)" (?EnsureWinsockInit@rtc@@YAXXZ),该符号在函数 _wWinMain@16 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall rtc::Win32SocketServer::Win32SocketServer(class rtc::MessageQueue *)" (??0Win32SocketServer@rtc@@QAE@PAVMessageQueue@1@@Z),该符号在函数 "public: __thiscall rtc::Win32Thread::Win32Thread(void)" (??0Win32Thread@rtc@@QAE@XZ) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "public: virtual __thiscall rtc::Win32SocketServer::~Win32SocketServer(void)" (??1Win32SocketServer@rtc@@UAE@XZ),该符号在函数 "public: virtual __thiscall rtc::Win32Thread::~Win32Thread(void)" (??1Win32Thread@rtc@@UAE@XZ) 中被引用
1>..\build\Debug\peerconnection_client.exe : fatal error LNK1120: 65 个无法解析的外部命令

--------------------------------------------------------------------------------------------

    现将解决办法做如下说明:很明显,这是没有导入需要的lib库,之前我修改了peerconnection_client.vcxproj文件中的内容,我将此文件中对其他工程文件的引用全部删除了(peerconnection_client.vcxproj文件中最后的ItemGroup标签下的vcxproj文件),这样做是为了在编译peerconnection_client工程的时候不再重新编译那些工程文件,大大节约了该工程的编译时间!在做完这些操作后如果编译,肯定就会报上述的那些编译错误,你所做的就是根将ItemGroup标签下列举的所有的vcxproj项目文件对应生成的lib文件添加到peerconnection_client项目Linker下的附加依赖项中,如此上述那些“未识别的外部符号”将会被正确识别

    在编译peerconnection_client的过程中可能会出现getversionex的警告错误,VS编译器将警告等级设为"level4".警告自然就会触发错误了,可以在VS的项目属性中忽略此编号的错误。

    

    如果使用的是vs2013 community update4编译,在接下来的编译中可能会报 atls.lib(atlbase.obj) : error LNK2005: "class ATL::CAtlWinModule ATL::_AtlWinModule" (?_AtlWinModule@ATL@@3VCAtlWinModule@1@A) already defined in libjingle_media.lib(win32devicemanager.obj) ,这是vs2013 community update4的更新bug,vs2013中的atls.lib库和其他的sdk中的lib重复了,导致vs2013编译器不知道该选择哪个lib中的符号,一种解决办法是, 把\depot_tools\win_toolchain\vs2013_files\wdk\lib\Atl\i386下的atls.lib删掉或重命名. 这样就会链接到C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\lib\atls.lib, 重定义就解决了,这是在本机安装的depot_tools的情况下的解决办法,但是我的PC中虽然安装了depot_tools工具但是我在对应目录下并未找到atls.lib文件,通过查找,原来我下载的WDK7600.16385.1中的目录下找到了那个atls.lib文件,类似的,将该文件改名或者删除,此编译错误解决。

---------------------------------------------------------------

    Release模式下生成dll,C/C++ ->Preprocessor中前往不能定义_DEBUG标识,这个低级错误容易在赋值工程属性的时候犯!