編譯2014819版本的webrtc

    項目需要支持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標識,這個低級錯誤容易在賦值工程屬性的時候犯!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章