Building release version 11177 from git (commit 893505d) succeeds, but when trying to build application for a real device (it works without a problem on iOS Simulator) it throws undefined symbols error:
Undefined symbols for architecture armv7:
"webrtc::PacketRouter::AddRtpModule(webrtc::RtpRtcp_, bool)", referenced from:
webrtc::ViEChannel::Init() in libWebRTC.a(webrtc.vie_channel.o)
webrtc::ViEChannel::SetSendCodec(webrtc::VideoCodec const&, bool) in libWebRTC.a(webrtc.viechannel.o)
webrtc::voe::Channel::RegisterSenderCongestionControlObjects(webrtc::RtpPacketSender, webrtc::TransportFeedbackObserver, webrtc::PacketRouter) in libWebRTC.a(voiceengine.channel.o)
webrtc::voe::Channel::RegisterReceiverCongestionControlObjects(webrtc::PacketRouter) in libWebRTC.a(voice_engine.channel.o)
"webrtc::CriticalSectionWrapper::~CriticalSectionWrapper()", referenced from:
webrtc::PacedSender::~PacedSender() in libWebRTC.a(paced_sender.pacedsender.o)
"webrtc::CriticalSectionWrapper::CreateCriticalSection()", referenced from:
webrtc::PacedSender::PacedSender(webrtc::Clock, webrtc::PacedSender::Callback_, int, int, int) in libWebRTC.a(paced_sender.pacedsender.o)
webrtc::VCMDecodedFrameCallback::VCMDecodedFrameCallback(webrtc::VCMTiming&, webrtc::Clock) in libWebRTC.a(webrtc_video_coding.genericdecoder.o)
webrtc::(anonymous namespace)::VideoCodingModuleImpl::VideoCodingModuleImpl(webrtc::Clock, webrtc::EventFactory, bool, webrtc::VideoEncoderRateObserver, webrtc::VCMQMSettingsCallback_) in libWebRTC.a(webrtc_video_coding.video_coding_impl.o)
webrtc::LockedIsacBandwidthInfo::LockedIsacBandwidthInfo() in libWebRTC.a(isac_common.locked_bandwidth_info.o)
webrtc::AudioConferenceMixerImpl::Init() in libWebRTC.a(audio_conference_mixer.audio_conference_mixerimpl.o)
webrtc::MemoryPoolwebrtc::AudioFrame::CreateMemoryPool(webrtc::MemoryPoolwebrtc::AudioFrame&, unsigned int) in libWebRTC.a(audio_conference_mixer.audio_conference_mixer_impl.o)
webrtc::mediaoptimization::MediaOptimization::MediaOptimization(webrtc::Clock) in libWebRTC.a(webrtc_video_coding.mediaoptimization.o)
...
"webrtc::PacketRouter::RemoveRtpModule(webrtc::RtpRtcp, bool)", referenced from:
webrtc::ViEChannel::~ViEChannel() in libWebRTC.a(webrtc.vie_channel.o)
webrtc::ViEChannel::SetSendCodec(webrtc::VideoCodec const&, bool) in libWebRTC.a(webrtc.vie_channel.o)
webrtc::voe::Channel::ResetCongestionControlObjects() in libWebRTC.a(voice_engine.channel.o)
"webrtc::CriticalSectionWrapper::Leave()", referenced from:
webrtc::PacedSender::Pause() in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::Resume() in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::UpdateBitrate(int, int, int) in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::InsertPacket(webrtc::RtpPacketSender::Priority, unsigned int, unsigned short, long long, unsigned long, bool) in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::ExpectedQueueTimeMs() const in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::QueueSizePackets() const in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::QueueInMs() const in libWebRTC.a(paced_sender.pacedsender.o)
...
"rtc::CriticalSection::Leave() const", referenced from:
rtc::Thread::Send(rtc::MessageHandler, unsigned int, rtc::MessageData_) in libWebRTC.a(rtcbase.thread.o)
rtc::Thread::ReceiveSendsFromThread(rtc::Thread const) in libWebRTC.a(rtc_base.thread.o)
rtc::SignalThread::Destroy(bool) in libWebRTC.a(rtc_base.signalthread.o)
rtc::SignalThread::EnterExit::~EnterExit() in libWebRTC.a(rtc_base.signalthread.o)
webrtc::ProcessThreadImpl::Process() in libWebRTC.a(webrtc_utility.process_threadimpl.o)
webrtc::RtpHeaderParserImpl::Parse(unsigned char const, unsigned long, webrtc::RTPHeader_) const in libWebRTC.a(rtp_rtcp.rtp_header_parser.o)
webrtc::RtpHeaderParserImpl::RegisterRtpHeaderExtension(webrtc::RTPExtensionType, unsigned char) in libWebRTC.a(rtp_rtcp.rtp_headerparser.o)
...
"rtc::CritScope::CritScope(rtc::CriticalSection const)", referenced from:
rtc::Thread::Send(rtc::MessageHandler, unsigned int, rtc::MessageData) in libWebRTC.a(rtcbase.thread.o)
rtc::Thread::Clear(rtc::MessageHandler, unsigned int, std::1::list<rtc::Message, std::1::allocator >_) in libWebRTC.a(rtcbase.thread.o)
rtc::MessageQueueManager::AddInternal(rtc::MessageQueue) in libWebRTC.a(rtcbase.messagequeue.o)
rtc::MessageQueueManager::RemoveInternal(rtc::MessageQueue) in libWebRTC.a(rtcbase.messagequeue.o)
rtc::MessageQueueManager::ClearInternal(rtc::MessageHandler) in libWebRTC.a(rtcbase.messagequeue.o)
rtc::MessageQueue::Get(rtc::Message, int, bool) in libWebRTC.a(rtcbase.messagequeue.o)
rtc::MessageQueue::Post(rtc::MessageHandler, unsigned int, rtc::MessageData_, bool) in libWebRTC.a(rtc_base.messagequeue.o)
...
"webrtc::CriticalSectionWrapper::Enter()", referenced from:
webrtc::PacedSender::Pause() in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::Resume() in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::UpdateBitrate(int, int, int) in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::InsertPacket(webrtc::RtpPacketSender::Priority, unsigned int, unsigned short, long long, unsigned long, bool) in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::ExpectedQueueTimeMs() const in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::QueueSizePackets() const in libWebRTC.a(paced_sender.paced_sender.o)
webrtc::PacedSender::QueueInMs() const in libWebRTC.a(paced_sender.pacedsender.o)
...
"rtc::CriticalSection::Enter() const", referenced from:
rtc::Thread::Send(rtc::MessageHandler, unsigned int, rtc::MessageData_) in libWebRTC.a(rtcbase.thread.o)
rtc::Thread::ReceiveSendsFromThread(rtc::Thread const) in libWebRTC.a(rtc_base.thread.o)
rtc::SignalThread::OnMainThreadDestroyed() in libWebRTC.a(rtc_base.signalthread.o)
rtc::SignalThread::Start() in libWebRTC.a(rtc_base.signalthread.o)
rtc::SignalThread::Destroy(bool) in libWebRTC.a(rtc_base.signalthread.o)
rtc::SignalThread::OnMessage(rtc::Message*) in libWebRTC.a(rtc_base.signalthread.o)
rtc::SignalThread::Run() in libWebRTC.a(rtc_base.signalthread.o)
...
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I get the same error for arm7 and arm64 architectures.
Also, the only way to actually get any other revision than latest to build is to comment out twiddle_objc_target on line 239 in function sync() in build.sh file.
Building release version 11177 from git (commit 893505d) succeeds, but when trying to build application for a real device (it works without a problem on iOS Simulator) it throws undefined symbols error:
I get the same error for arm7 and arm64 architectures.
Also, the only way to actually get any other revision than latest to build is to comment out
twiddle_objc_target
on line 239 in functionsync()
in build.sh file.