Getting LNK2005 errors when trying to package the project

Hello guys!

I’ve downloaded the Dolby.io Millicast plugins to stream audio from and to the engine. But when the both plugins are installed, I’m getting a lot of LNK2005 errors when packaging the project. I’ve searched for the solution but didn’t find one. Here is the error code:

UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "private: static char const * const FAudioDeviceModule::kTimerQueueName" (?kTimerQueueName@FAudioDeviceModule@@0QBDB) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: __cdecl FAudioDeviceModule::FAudioDeviceModule(class webrtc::TaskQueueFactory *)" (??0FAudioDeviceModule@@QEAA@PEAVTaskQueueFactory@webrtc@@@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::ActiveAudioLayer(enum webrtc::AudioDeviceModule::AudioLayer *)const " (?ActiveAudioLayer@FAudioDeviceModule@@UEBAHPEAW4AudioLayer@AudioDeviceModule@webrtc@@@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: static class rtc::scoped_refptr<class FAudioDeviceModule> __cdecl FAudioDeviceModule::Create(class webrtc::TaskQueueFactory *)" (?Create@FAudioDeviceModule@@SA?AV?$scoped_refptr@VFAudioDeviceModule@@@rtc@@PEAVTaskQueueFactory@webrtc@@@Z) already defined i
n Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: void __cdecl FWebRTCPeerConnection::CreateOffer(void)" (?CreateOffer@FWebRTCPeerConnection@@QEAAXXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: class TSessionDescriptionObserver<class webrtc::CreateSessionDescriptionObserver> * __cdecl FWebRTCPeerConnection::GetCreateDescriptionObserver(void)" (?GetCreateDescriptionObserver@FWebRTCPeerConnection@@QEAAPEAV?$TSessionDescriptionObserver@VCreateSessi
onDescriptionObserver@webrtc@@@@XZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: class TSessionDescriptionObserver<class webrtc::CreateSessionDescriptionObserver> const * __cdecl FWebRTCPeerConnection::GetCreateDescriptionObserver(void)const " (?GetCreateDescriptionObserver@FWebRTCPeerConnection@@QEBAPEBV?$TSessionDescriptionObserver@
VCreateSessionDescriptionObserver@webrtc@@@@XZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: static struct webrtc::PeerConnectionInterface::RTCConfiguration __cdecl FWebRTCPeerConnection::GetDefaultConfig(void)" (?GetDefaultConfig@FWebRTCPeerConnection@@SA?AURTCConfiguration@PeerConnectionInterface@webrtc@@XZ) already defined in Module.MillicastP
layer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: class TSessionDescriptionObserver<class webrtc::SetSessionDescriptionObserver> * __cdecl FWebRTCPeerConnection::GetLocalDescriptionObserver(void)" (?GetLocalDescriptionObserver@FWebRTCPeerConnection@@QEAAPEAV?$TSessionDescriptionObserver@VSetSessionDescri
ptionObserver@webrtc@@@@XZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: class TSessionDescriptionObserver<class webrtc::SetSessionDescriptionObserver> const * __cdecl FWebRTCPeerConnection::GetLocalDescriptionObserver(void)const " (?GetLocalDescriptionObserver@FWebRTCPeerConnection@@QEBAPEBV?$TSessionDescriptionObserver@VSetS
essionDescriptionObserver@webrtc@@@@XZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: class TSessionDescriptionObserver<class webrtc::SetSessionDescriptionObserver> * __cdecl FWebRTCPeerConnection::GetRemoteDescriptionObserver(void)" (?GetRemoteDescriptionObserver@FWebRTCPeerConnection@@QEAAPEAV?$TSessionDescriptionObserver@VSetSessionDesc
riptionObserver@webrtc@@@@XZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: class TSessionDescriptionObserver<class webrtc::SetSessionDescriptionObserver> const * __cdecl FWebRTCPeerConnection::GetRemoteDescriptionObserver(void)const " (?GetRemoteDescriptionObserver@FWebRTCPeerConnection@@QEBAPEBV?$TSessionDescriptionObserver@VSe
tSessionDescriptionObserver@webrtc@@@@XZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::InitPlayout(void)" (?InitPlayout@FAudioDeviceModule@@UEAAHXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::InitRecording(void)" (?InitRecording@FAudioDeviceModule@@UEAAHXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::MaxMicrophoneVolume(unsigned int *)const " (?MaxMicrophoneVolume@FAudioDeviceModule@@UEBAHPEAI@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::MicrophoneVolume(unsigned int *)const " (?MicrophoneVolume@FAudioDeviceModule@@UEBAHPEAI@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnAddStream(class rtc::scoped_refptr<class webrtc::MediaStreamInterface>)" (?OnAddStream@FWebRTCPeerConnection@@UEAAXV?$scoped_refptr@VMediaStreamInterface@webrtc@@@rtc@@@Z) already defined in Module.MillicastPl
ayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnAddTrack(class rtc::scoped_refptr<class webrtc::RtpReceiverInterface>,class std::vector<class rtc::scoped_refptr<class webrtc::MediaStreamInterface>,class std::allocator<class rtc::scoped_refptr<class webrtc::
MediaStreamInterface> > > const &)" (?OnAddTrack@FWebRTCPeerConnection@@UEAAXV?$scoped_refptr@VRtpReceiverInterface@webrtc@@@rtc@@AEBV?$vector@V?$scoped_refptr@VMediaStreamInterface@webrtc@@@rtc@@V?$allocator@V?$scoped_refptr@VMediaStreamInterface@webrtc@@@rtc@@@std@@@std@@@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnDataChannel(class rtc::scoped_refptr<class webrtc::DataChannelInterface>)" (?OnDataChannel@FWebRTCPeerConnection@@UEAAXV?$scoped_refptr@VDataChannelInterface@webrtc@@@rtc@@@Z) already defined in Module.Millica
stPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnIceCandidate(class webrtc::IceCandidateInterface const *)" (?OnIceCandidate@FWebRTCPeerConnection@@UEAAXPEBVIceCandidateInterface@webrtc@@@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnIceConnectionChange(enum webrtc::PeerConnectionInterface::IceConnectionState)" (?OnIceConnectionChange@FWebRTCPeerConnection@@UEAAXW4IceConnectionState@PeerConnectionInterface@webrtc@@@Z) already defined in Mo
dule.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnIceConnectionReceivingChange(bool)" (?OnIceConnectionReceivingChange@FWebRTCPeerConnection@@UEAAX_N@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnIceGatheringChange(enum webrtc::PeerConnectionInterface::IceGatheringState)" (?OnIceGatheringChange@FWebRTCPeerConnection@@UEAAXW4IceGatheringState@PeerConnectionInterface@webrtc@@@Z) already defined in Module
.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnRemoveStream(class rtc::scoped_refptr<class webrtc::MediaStreamInterface>)" (?OnRemoveStream@FWebRTCPeerConnection@@UEAAXV?$scoped_refptr@VMediaStreamInterface@webrtc@@@rtc@@@Z) already defined in Module.Milli
castPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnRemoveTrack(class rtc::scoped_refptr<class webrtc::RtpReceiverInterface>)" (?OnRemoveTrack@FWebRTCPeerConnection@@UEAAXV?$scoped_refptr@VRtpReceiverInterface@webrtc@@@rtc@@@Z) already defined in Module.Millica
stPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnRenegotiationNeeded(void)" (?OnRenegotiationNeeded@FWebRTCPeerConnection@@UEAAXXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnSignalingChange(enum webrtc::PeerConnectionInterface::SignalingState)" (?OnSignalingChange@FWebRTCPeerConnection@@UEAAXW4SignalingState@PeerConnectionInterface@webrtc@@@Z) already defined in Module.MillicastPl
ayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual void __cdecl FWebRTCPeerConnection::OnTrack(class rtc::scoped_refptr<class webrtc::RtpTransceiverInterface>)" (?OnTrack@FWebRTCPeerConnection@@UEAAXV?$scoped_refptr@VRtpTransceiverInterface@webrtc@@@rtc@@@Z) already defined in Module.MillicastPlay
er.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual bool __cdecl FAudioDeviceModule::Playing(void)const " (?Playing@FAudioDeviceModule@@UEBA_NXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::PlayoutDelay(unsigned short *)const " (?PlayoutDelay@FAudioDeviceModule@@UEBAHPEAG@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::PlayoutDeviceName(unsigned short,char * const,char * const)" (?PlayoutDeviceName@FAudioDeviceModule@@UEAAHGQEAD0@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual short __cdecl FAudioDeviceModule::PlayoutDevices(void)" (?PlayoutDevices@FAudioDeviceModule@@UEAAFXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::PlayoutIsAvailable(bool *)" (?PlayoutIsAvailable@FAudioDeviceModule@@UEAAHPEA_N@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual bool __cdecl FAudioDeviceModule::Recording(void)const " (?Recording@FAudioDeviceModule@@UEBA_NXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::RecordingDeviceName(unsigned short,char * const,char * const)" (?RecordingDeviceName@FAudioDeviceModule@@UEAAHGQEAD0@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual short __cdecl FAudioDeviceModule::RecordingDevices(void)" (?RecordingDevices@FAudioDeviceModule@@UEAAFXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "int __cdecl RecordingIsAvailable(bool *)" (?RecordingIsAvailable@@YAHPEA_N@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::RecordingIsAvailable(bool *)" (?RecordingIsAvailable@FAudioDeviceModule@@UEAAHPEA_N@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::RegisterAudioCallback(class webrtc::AudioTransport *)" (?RegisterAudioCallback@FAudioDeviceModule@@UEAAHPEAVAudioTransport@webrtc@@@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: void __cdecl FWebRTCPeerConnection::SetLocalDescription(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 &)" (?Set
LocalDescription@FWebRTCPeerConnection@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::SetMicrophoneVolume(unsigned int)" (?SetMicrophoneVolume@FAudioDeviceModule@@UEAAHI@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::SetPlayoutDevice(unsigned short)" (?SetPlayoutDevice@FAudioDeviceModule@@UEAAHG@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::SetPlayoutDevice(enum webrtc::AudioDeviceModule::WindowsDeviceType)" (?SetPlayoutDevice@FAudioDeviceModule@@UEAAHW4WindowsDeviceType@AudioDeviceModule@webrtc@@@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::SetRecordingDevice(unsigned short)" (?SetRecordingDevice@FAudioDeviceModule@@UEAAHG@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::SetRecordingDevice(enum webrtc::AudioDeviceModule::WindowsDeviceType)" (?SetRecordingDevice@FAudioDeviceModule@@UEAAHW4WindowsDeviceType@AudioDeviceModule@webrtc@@@Z) already defined in Module.MillicastPlayer.cpp.ob
j
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: void __cdecl FWebRTCPeerConnection::SetRemoteDescription(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 &)" (?Se
tRemoteDescription@FWebRTCPeerConnection@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::SetStereoRecording(bool)" (?SetStereoRecording@FAudioDeviceModule@@UEAAH_N@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::StartPlayout(void)" (?StartPlayout@FAudioDeviceModule@@UEAAHXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::StartRecording(void)" (?StartRecording@FAudioDeviceModule@@UEAAHXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::StereoPlayout(bool *)const " (?StereoPlayout@FAudioDeviceModule@@UEBAHPEA_N@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::StereoPlayoutIsAvailable(bool *)const " (?StereoPlayoutIsAvailable@FAudioDeviceModule@@UEBAHPEA_N@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::StereoRecording(bool *)const " (?StereoRecording@FAudioDeviceModule@@UEBAHPEA_N@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::StereoRecordingIsAvailable(bool *)const " (?StereoRecordingIsAvailable@FAudioDeviceModule@@UEBAHPEA_N@Z) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::StopPlayout(void)" (?StopPlayout@FAudioDeviceModule@@UEAAHXZ) already defined in Module.MillicastPlayer.cpp.obj
UATHelper: Packaging (Windows (64-bit)):     Module.MillicastPublisher.cpp.obj : error LNK2005: "public: virtual int __cdecl FAudioDeviceModule::StopRecording(void)" (?StopRecording@FAudioDeviceModule@@UEAAHXZ) already defined in Module.MillicastPlayer.cpp.obj

Any help would be appreciated

Hey Javeed_,

Great to see that you are trying out some of the DolbyIO Streaming (formerly Millicast) Plugins. To best support our community in a timely manner we typically handle support on our GitHub . In order to help solve your issue we need to have a better idea of your Operating System, UE Version, which plugin you are using, and what version plugin you are using. I’m not sure where the LNK2005 errors are coming from but maybe it is related to a conflict with another plugin or package similar to this error here: Building crashes ERROR: "already defined in Module.PixelStreaming.cpp.obj" · Issue #20 · millicast/millicast-publisher-unreal-engine-plugin · GitHub

Hopefully you already have it working, otherwise, we look forward to hearing from you on GitHub.

Best,

Braden, The DolbyIO UE Team.