Keywords: UE4, error LNK2005 on linking libprotobuf

Issue

There’re tons of LNK2005 errors on packaging project( e.g. building in Shipping mode).

webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::AppendPartialToString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?AppendPartialToString@MessageLite@protobuf@google@@QEBA_NPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
May be caused by

Your project perhaps included multiple third party libraries, and they are linked a same library(e.g. libprotobuf), and this library(libprotobuf) was saved in multiple replicas in your project or engine.
e.g.: WebRTC was included in your project, libprotobuf.lib was also include as a third party library in your plugin, then packaging project would failed with error LNK2005. Because there’s another libprotobuf.lib that was included in WebRTC.

Solution

Make sure protobuf version match the same while protobuf was inlcuded in multiple third parties.

Version of protobuf that was included in WebRTC which is a third party of Unreal is 3.3.2.
https://github.com/protocolbuffers/protobuf/releases/tag/v3.3.2

Reference:
Compilation issues on Win10 pro x64 - VS2015/2017
https://github.com/psmoveservice/PSMoveService/issues/419

Detail of errors:
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::AppendPartialToString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?AppendPartialToString@MessageLite@protobuf@google@@QEBA_NPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::AppendToString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?AppendToString@MessageLite@protobuf@google@@QEBA_NPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl google::protobuf::MessageLite::InitializationErrorString(void)const " (?InitializationErrorString@MessageLite@protobuf@google@@UEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: static void __cdecl google::protobuf::internal::GenericTypeHandler<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::Merge(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> > *)" (?Merge@?$GenericTypeHandler@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@internal@protobuf@google@@SAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEAV56@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: static void __cdecl google::protobuf::internal::GenericTypeHandler<class google::protobuf::MessageLite>::Merge(class google::protobuf::MessageLite const &,class google::protobuf::MessageLite *)" (?Merge@?$GenericTypeHandler@VMessageLite@protobuf@google@@@internal@protobuf@google@@SAXAEBVMessageLite@34@PEAV534@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::MergeFromCodedStream(class google::protobuf::io::CodedInputStream *)" (?MergeFromCodedStream@MessageLite@protobuf@google@@QEAA_NPEAVCodedInputStream@io@23@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: virtual class google::protobuf::MessageLite * __cdecl google::protobuf::MessageLite::New(class google::protobuf::Arena *)const " (?New@MessageLite@protobuf@google@@UEBAPEAV123@PEAVArena@23@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::ParseFromArray(void const *,int)" (?ParseFromArray@MessageLite@protobuf@google@@QEAA_NPEBXH@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::ParseFromBoundedZeroCopyStream(class google::protobuf::io::ZeroCopyInputStream *,int)" (?ParseFromBoundedZeroCopyStream@MessageLite@protobuf@google@@QEAA_NPEAVZeroCopyInputStream@io@23@H@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::ParseFromCodedStream(class google::protobuf::io::CodedInputStream *)" (?ParseFromCodedStream@MessageLite@protobuf@google@@QEAA_NPEAVCodedInputStream@io@23@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::ParseFromString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParseFromString@MessageLite@protobuf@google@@QEAA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::ParseFromZeroCopyStream(class google::protobuf::io::ZeroCopyInputStream *)" (?ParseFromZeroCopyStream@MessageLite@protobuf@google@@QEAA_NPEAVZeroCopyInputStream@io@23@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::ParsePartialFromArray(void const *,int)" (?ParsePartialFromArray@MessageLite@protobuf@google@@QEAA_NPEBXH@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::ParsePartialFromBoundedZeroCopyStream(class google::protobuf::io::ZeroCopyInputStream *,int)" (?ParsePartialFromBoundedZeroCopyStream@MessageLite@protobuf@google@@QEAA_NPEAVZeroCopyInputStream@io@23@H@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::ParsePartialFromCodedStream(class google::protobuf::io::CodedInputStream *)" (?ParsePartialFromCodedStream@MessageLite@protobuf@google@@QEAA_NPEAVCodedInputStream@io@23@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::ParsePartialFromString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?ParsePartialFromString@MessageLite@protobuf@google@@QEAA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::ParsePartialFromZeroCopyStream(class google::protobuf::io::ZeroCopyInputStream *)" (?ParsePartialFromZeroCopyStream@MessageLite@protobuf@google@@QEAA_NPEAVZeroCopyInputStream@io@23@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl google::protobuf::MessageLite::SerializeAsString(void)const " (?SerializeAsString@MessageLite@protobuf@google@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl google::protobuf::MessageLite::SerializePartialAsString(void)const " (?SerializePartialAsString@MessageLite@protobuf@google@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::SerializePartialToArray(void *,int)const " (?SerializePartialToArray@MessageLite@protobuf@google@@QEBA_NPEAXH@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::SerializePartialToCodedStream(class google::protobuf::io::CodedOutputStream *)const " (?SerializePartialToCodedStream@MessageLite@protobuf@google@@QEBA_NPEAVCodedOutputStream@io@23@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::SerializePartialToString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?SerializePartialToString@MessageLite@protobuf@google@@QEBA_NPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::SerializePartialToZeroCopyStream(class google::protobuf::io::ZeroCopyOutputStream *)const " (?SerializePartialToZeroCopyStream@MessageLite@protobuf@google@@QEBA_NPEAVZeroCopyOutputStream@io@23@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::SerializeToArray(void *,int)const " (?SerializeToArray@MessageLite@protobuf@google@@QEBA_NPEAXH@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::SerializeToCodedStream(class google::protobuf::io::CodedOutputStream *)const " (?SerializeToCodedStream@MessageLite@protobuf@google@@QEBA_NPEAVCodedOutputStream@io@23@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::SerializeToString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)const " (?SerializeToString@MessageLite@protobuf@google@@QEBA_NPEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(message_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::MessageLite::SerializeToZeroCopyStream(class google::protobuf::io::ZeroCopyOutputStream *)const " (?SerializeToZeroCopyStream@MessageLite@protobuf@google@@QEBA_NPEAVZeroCopyOutputStream@io@23@@Z) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: __cdecl google::protobuf::io::ArrayInputStream::ArrayInputStream(void const *,int,int)" (??0ArrayInputStream@io@protobuf@google@@QEAA@PEBXHH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: __cdecl google::protobuf::io::ArrayOutputStream::ArrayOutputStream(void *,int,int)" (??0ArrayOutputStream@io@protobuf@google@@QEAA@PEAXHH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: __cdecl google::protobuf::io::CopyingInputStreamAdaptor::CopyingInputStreamAdaptor(class google::protobuf::io::CopyingInputStream *,int)" (??0CopyingInputStreamAdaptor@io@protobuf@google@@QEAA@PEAVCopyingInputStream@123@H@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: __cdecl google::protobuf::io::CopyingOutputStreamAdaptor::CopyingOutputStreamAdaptor(class google::protobuf::io::CopyingOutputStream *,int)" (??0CopyingOutputStreamAdaptor@io@protobuf@google@@QEAA@PEAVCopyingOutputStream@123@H@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: __cdecl google::protobuf::io::StringOutputStream::StringOutputStream(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > *)" (??0StringOutputStream@io@protobuf@google@@QEAA@PEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __cdecl google::protobuf::io::ArrayInputStream::~ArrayInputStream(void)" (??1ArrayInputStream@io@protobuf@google@@UEAA@XZ) already defined in libprotobuf.lib(unknown_field_set.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __cdecl google::protobuf::io::ArrayOutputStream::~ArrayOutputStream(void)" (??1ArrayOutputStream@io@protobuf@google@@UEAA@XZ) already defined in libprotobuf.lib(message_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __cdecl google::protobuf::io::CopyingInputStream::~CopyingInputStream(void)" (??1CopyingInputStream@io@protobuf@google@@UEAA@XZ) already defined in libprotobuf.lib(zero_copy_stream_impl.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __cdecl google::protobuf::io::CopyingInputStreamAdaptor::~CopyingInputStreamAdaptor(void)" (??1CopyingInputStreamAdaptor@io@protobuf@google@@UEAA@XZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __cdecl google::protobuf::io::CopyingOutputStream::~CopyingOutputStream(void)" (??1CopyingOutputStream@io@protobuf@google@@UEAA@XZ) already defined in libprotobuf.lib(zero_copy_stream_impl.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __cdecl google::protobuf::io::CopyingOutputStreamAdaptor::~CopyingOutputStreamAdaptor(void)" (??1CopyingOutputStreamAdaptor@io@protobuf@google@@UEAA@XZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __cdecl google::protobuf::io::StringOutputStream::~StringOutputStream(void)" (??1StringOutputStream@io@protobuf@google@@UEAA@XZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "private: void __cdecl google::protobuf::io::CopyingInputStreamAdaptor::AllocateBufferIfNeeded(void)" (?AllocateBufferIfNeeded@CopyingInputStreamAdaptor@io@protobuf@google@@AEAAXXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "private: void __cdecl google::protobuf::io::CopyingOutputStreamAdaptor::AllocateBufferIfNeeded(void)" (?AllocateBufferIfNeeded@CopyingOutputStreamAdaptor@io@protobuf@google@@AEAAXXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual void __cdecl google::protobuf::io::ArrayInputStream::BackUp(int)" (?BackUp@ArrayInputStream@io@protobuf@google@@UEAAXH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual void __cdecl google::protobuf::io::ArrayOutputStream::BackUp(int)" (?BackUp@ArrayOutputStream@io@protobuf@google@@UEAAXH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual void __cdecl google::protobuf::io::CopyingInputStreamAdaptor::BackUp(int)" (?BackUp@CopyingInputStreamAdaptor@io@protobuf@google@@UEAAXH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual void __cdecl google::protobuf::io::CopyingOutputStreamAdaptor::BackUp(int)" (?BackUp@CopyingOutputStreamAdaptor@io@protobuf@google@@UEAAXH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual void __cdecl google::protobuf::io::StringOutputStream::BackUp(int)" (?BackUp@StringOutputStream@io@protobuf@google@@UEAAXH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __int64 __cdecl google::protobuf::io::ArrayInputStream::ByteCount(void)const " (?ByteCount@ArrayInputStream@io@protobuf@google@@UEBA_JXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __int64 __cdecl google::protobuf::io::ArrayOutputStream::ByteCount(void)const " (?ByteCount@ArrayOutputStream@io@protobuf@google@@UEBA_JXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __int64 __cdecl google::protobuf::io::CopyingInputStreamAdaptor::ByteCount(void)const " (?ByteCount@CopyingInputStreamAdaptor@io@protobuf@google@@UEBA_JXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __int64 __cdecl google::protobuf::io::CopyingOutputStreamAdaptor::ByteCount(void)const " (?ByteCount@CopyingOutputStreamAdaptor@io@protobuf@google@@UEBA_JXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual __int64 __cdecl google::protobuf::io::StringOutputStream::ByteCount(void)const " (?ByteCount@StringOutputStream@io@protobuf@google@@UEBA_JXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: bool __cdecl google::protobuf::io::CopyingOutputStreamAdaptor::Flush(void)" (?Flush@CopyingOutputStreamAdaptor@io@protobuf@google@@QEAA_NXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "private: void __cdecl google::protobuf::io::CopyingInputStreamAdaptor::FreeBuffer(void)" (?FreeBuffer@CopyingInputStreamAdaptor@io@protobuf@google@@AEAAXXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "private: void __cdecl google::protobuf::io::CopyingOutputStreamAdaptor::FreeBuffer(void)" (?FreeBuffer@CopyingOutputStreamAdaptor@io@protobuf@google@@AEAAXXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual bool __cdecl google::protobuf::io::ArrayInputStream::Next(void const * *,int *)" (?Next@ArrayInputStream@io@protobuf@google@@UEAA_NPEAPEBXPEAH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual bool __cdecl google::protobuf::io::ArrayOutputStream::Next(void * *,int *)" (?Next@ArrayOutputStream@io@protobuf@google@@UEAA_NPEAPEAXPEAH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual bool __cdecl google::protobuf::io::CopyingInputStreamAdaptor::Next(void const * *,int *)" (?Next@CopyingInputStreamAdaptor@io@protobuf@google@@UEAA_NPEAPEBXPEAH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual bool __cdecl google::protobuf::io::CopyingOutputStreamAdaptor::Next(void * *,int *)" (?Next@CopyingOutputStreamAdaptor@io@protobuf@google@@UEAA_NPEAPEAXPEAH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual bool __cdecl google::protobuf::io::StringOutputStream::Next(void * *,int *)" (?Next@StringOutputStream@io@protobuf@google@@UEAA_NPEAPEAXPEAH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual bool __cdecl google::protobuf::io::ArrayInputStream::Skip(int)" (?Skip@ArrayInputStream@io@protobuf@google@@UEAA_NH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual int __cdecl google::protobuf::io::CopyingInputStream::Skip(int)" (?Skip@CopyingInputStream@io@protobuf@google@@UEAAHH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "public: virtual bool __cdecl google::protobuf::io::CopyingInputStreamAdaptor::Skip(int)" (?Skip@CopyingInputStreamAdaptor@io@protobuf@google@@UEAA_NH@Z) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(zero_copy_stream_impl_lite.obj) : error LNK2005: "private: bool __cdecl google::protobuf::io::CopyingOutputStreamAdaptor::WriteBuffer(void)" (?WriteBuffer@CopyingOutputStreamAdaptor@io@protobuf@google@@AEAA_NXZ) already defined in libprotobuf.lib(zero_copy_stream_impl_lite.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: __cdecl google::protobuf::internal::LogMessage::LogMessage(enum google::protobuf::LogLevel,char const *,int)" (??0LogMessage@internal@protobuf@google@@QEAA@W4LogLevel@23@PEBDH@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: __cdecl google::protobuf::LogSilencer::LogSilencer(void)" (??0LogSilencer@protobuf@google@@QEAA@XZ) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: virtual __cdecl google::protobuf::Closure::~Closure(void)" (??1Closure@protobuf@google@@UEAA@XZ) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: virtual __cdecl google::protobuf::internal::FunctionClosure0::~FunctionClosure0(void)" (??1FunctionClosure0@internal@protobuf@google@@UEAA@XZ) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: __cdecl google::protobuf::internal::LogMessage::~LogMessage(void)" (??1LogMessage@internal@protobuf@google@@QEAA@XZ) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: __cdecl google::protobuf::LogSilencer::~LogSilencer(void)" (??1LogSilencer@protobuf@google@@QEAA@XZ) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: void __cdecl google::protobuf::internal::LogFinisher::operator=(class google::protobuf::internal::LogMessage &)" (??4LogFinisher@internal@protobuf@google@@QEAAXAEAVLogMessage@123@@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(class google::protobuf::util::Status const &)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@AEBVStatus@util@23@@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(class google::protobuf::StringPiece const &)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@AEBVStringPiece@23@@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(class google::protobuf::uint128 const &)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@AEBVuint128@23@@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(char)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@D@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(int)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@H@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(unsigned int)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@I@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(long)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@J@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(unsigned long)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@K@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(double)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@N@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(void *)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@PEAX@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(char const *)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@PEBD@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(__int64)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@_J@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "public: class google::protobuf::internal::LogMessage & __cdecl google::protobuf::internal::LogMessage::operator<<(unsigned __int64)" (??6LogMessage@internal@protobuf@google@@QEAAAEAV0123@_K@Z) already defined in libprotobuf.lib(common.cc.obj)
webrtc.lib(common.obj) : error LNK2005: "void __cdecl google::protobuf::internal::DefaultLogHandler(enum google::protobuf::LogLevel,char const *,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?DefaultLogHandler@internal@protobuf@google@@YAXW4LogLevel@23@PEBDHAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) already defined in libprotobuf.lib(common.cc.obj)

Pouvres moutons! Si nous navions à nous défendre que du loup, nous saurions bien nous en garder. Mais qui nous gardera du berger? ― Romain Rolland