libEaseMobClientSDKLite.a编译正常,换成libEaseMobClientSDK.a编译错误

问题描述

版本:V2.1.4 2015-03-14 UIDemo是正常的我项目里原来引用的是libEaseMobClientSDKLite.a编译正常,但换成libEaseMobClientSDK.a后编译错误该怎么办呢?arm64,错误信息:Undefined symbols for architecture arm64: "std::_List_node_base::reverse()", referenced from: webrtc::PayloadSplitter::SplitRed(std::list >*) in libEaseMobClientSDK.a(payload_splitter.o) "std::ostream::operator >*, webrtc::Operations*, webrtc::AudioDecoder*, int*, webrtc::AudioDecoder::SpeechType*) in libEaseMobClientSDK.a(neteq_impl.o) "std::string::assign(std::string const&)", referenced from: webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libEaseMobClientSDK.a(rtcp_sender.o) "std::ostream& std::ostream::_M_insert(void const*)", referenced from: webrtc::voe::RemixAndResample(webrtc::AudioFrame const&, webrtc::PushResampler*, webrtc::AudioFrame*) in libEaseMobClientSDK.a(utility.o) webrtc::voe::DownConvertToCodecFormat(short const*, int, int, int, int, int, short*, webrtc::PushResampler*, webrtc::AudioFrame*) in libEaseMobClientSDK.a(utility.o) webrtc::acm2::ACMResampler::Resample10Msec(short const*, int, int, int, int, short*) in libEaseMobClientSDK.a(acm_resampler.o) "std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from: std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libEaseMobClientSDK.a(channel.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libEaseMobClientSDK.a(channel.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::BitrateControllerImpl::NormalRateAllocation(unsigned int, unsigned char, unsigned int, unsigned int) in libEaseMobClientSDK.a(bitrate_controller_impl.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libEaseMobClientSDK.a(bitrate_controller_impl.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libEaseMobClientSDK.a(bitrate_controller_impl.o) ... "std::__throw_out_of_range(char const*)", referenced from: webrtc::RTCPSender::BuildTMMBR(webrtc::ModuleRtpRtcpImpl*, unsigned char*, int&) in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPSender::BuildTMMBN(unsigned char*, int&) in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPReceiver::BoundingSet(bool&, webrtc::TMMBRSet*) in libEaseMobClientSDK.a(rtcp_receiver.o) webrtc::RTCPHelp::RTCPReceiveInformation::InsertTMMBRItem(unsigned int, webrtc::RTCPUtility::RTCPPacketRTPFBTMMBRItem const&, long long) in libEaseMobClientSDK.a(rtcp_receiver_help.o) webrtc::RTCPHelp::RTCPReceiveInformation::GetTMMBRSet(unsigned int, unsigned int, webrtc::TMMBRSet*, long long) in libEaseMobClientSDK.a(rtcp_receiver_help.o) webrtc::RTPPacketHistory::GetPacketAndSetSendTime(unsigned short, unsigned int, bool, unsigned char*, unsigned short*, long long*) in libEaseMobClientSDK.a(rtp_packet_history.o) webrtc::RTPPacketHistory::GetBestFittingPacket(unsigned char*, unsigned short*, long long*) in libEaseMobClientSDK.a(rtp_packet_history.o) ... "std::__throw_length_error(char const*)", referenced from: std::vector >::_M_insert_aux(__gnu_cxx::__normal_iterator > >, webrtc::voe::ChannelOwner const&) in libEaseMobClientSDK.a(channel_manager.o) std::vector >::_M_insert_aux(__gnu_cxx::__normal_iterator > >, webrtc::ReportBlock const&) in libEaseMobClientSDK.a(channel.o) webrtc::AudioBuffer::AudioBuffer(int, int, int, int, int) in libEaseMobClientSDK.a(audio_buffer.o) std::vector >::_M_insert_aux(__gnu_cxx::__normal_iterator > >, webrtc::PushSincResampler* const&) in libEaseMobClientSDK.a(audio_buffer.o) std::vector >::_M_insert_aux(__gnu_cxx::__normal_iterator > >, webrtc::ModuleRtpRtcpImpl* const&) in libEaseMobClientSDK.a(rtp_rtcp_impl.o) std::vector >::_M_fill_insert(__gnu_cxx::__normal_iterator > >, unsigned long, void* const&) in libEaseMobClientSDK.a(processing_component.o) std::vector >::_M_insert_aux(__gnu_cxx::__normal_iterator > >, webrtc::RTCPReportBlock const&) in libEaseMobClientSDK.a(rtcp_receiver.o) ... "VTT for std::basic_ostringstream, std::allocator >", referenced from: webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::LogMessage::~LogMessage() in libEaseMobClientSDK.a(logging.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libEaseMobClientSDK.a(rtcp_sender.o) "std::_List_node_base::unhook()", referenced from: webrtc::AudioProcessingImpl::~AudioProcessingImpl() in libEaseMobClientSDK.a(audio_processing_impl.o) webrtc::ProcessThreadImpl::DeRegisterModule(webrtc::Module const*) in libEaseMobClientSDK.a(process_thread_impl.o) webrtc::AudioConferenceMixerImpl::UpdateToMix(std::list >*, std::list >*, std::map, std::allocator > >*, unsigned long&) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::AudioConferenceMixerImpl::SetMixabilityStatus(webrtc::MixerParticipant&, bool) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::AudioConferenceMixerImpl::SetAnonymousMixabilityStatus(webrtc::MixerParticipant&, bool) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::MemoryPoolImpl::PopMemory(webrtc::AudioFrame*&) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::MemoryPoolImpl::Terminate() in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) ... "std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from: webrtc::AudioConferenceMixerImpl::UpdateToMix(std::list >*, std::list >*, std::map, std::allocator > >*, unsigned long&) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::BitrateControllerImpl::NormalRateAllocation(unsigned int, unsigned char, unsigned int, unsigned int) in libEaseMobClientSDK.a(bitrate_controller_impl.o) webrtc::ReceiveStatisticsImpl::~ReceiveStatisticsImpl() in libEaseMobClientSDK.a(receive_statistics_impl.o) webrtc::ReceiveStatisticsImpl::~ReceiveStatisticsImpl() in libEaseMobClientSDK.a(receive_statistics_impl.o) non-virtual thunk to webrtc::ReceiveStatisticsImpl::~ReceiveStatisticsImpl() in libEaseMobClientSDK.a(receive_statistics_impl.o) non-virtual thunk to webrtc::ReceiveStatisticsImpl::~ReceiveStatisticsImpl() in libEaseMobClientSDK.a(receive_statistics_impl.o) webrtc::RTPPayloadRegistry::~RTPPayloadRegistry() in libEaseMobClientSDK.a(rtp_payload_registry.o) ... "std::ostream::operator >*, std::list >*, std::map, std::allocator > >*, unsigned long&) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::AudioConferenceMixerImpl::GetAdditionalAudio(std::list >*) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::AudioConferenceMixerImpl::ClearAudioFrameList(std::list >*) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::AudioConferenceMixerImpl::SetMixabilityStatus(webrtc::MixerParticipant&, bool) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) ... "std::basic_stringbuf, std::allocator >::str() const", referenced from: webrtc::LogMessage::~LogMessage() in libEaseMobClientSDK.a(logging.o) webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libEaseMobClientSDK.a(rtcp_sender.o) "std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&)", referenced from: webrtc::voe::Channel::SendPacket(int, void const*, int) in libEaseMobClientSDK.a(channel.o) webrtc::voe::Channel::SendRTCPPacket(int, void const*, int) in libEaseMobClientSDK.a(channel.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) "std::ios_base::~ios_base()", referenced from: webrtc::LogMessage::~LogMessage() in libEaseMobClientSDK.a(logging.o) webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libEaseMobClientSDK.a(rtcp_sender.o) "std::_Rb_tree_decrement(std::_Rb_tree_node_base*)", referenced from: std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libEaseMobClientSDK.a(channel.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libEaseMobClientSDK.a(channel.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libEaseMobClientSDK.a(bitrate_controller_impl.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) in libEaseMobClientSDK.a(bitrate_controller_impl.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libEaseMobClientSDK.a(receive_statistics_impl.o) ... "std::ios_base::Init::~Init()", referenced from: __GLOBAL__I_a in libEaseMobClientSDK.a(webrtc_voiceengine.o) "std::ios_base::ios_base()", referenced from: webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) "std::string::_Rep::_S_empty_rep_storage", referenced from: webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::LogMessage::~LogMessage() in libEaseMobClientSDK.a(logging.o) webrtc::voe::Channel::SendPacket(int, void const*, int) in libEaseMobClientSDK.a(channel.o) webrtc::voe::Channel::SendRTCPPacket(int, void const*, int) in libEaseMobClientSDK.a(channel.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPSender::PrepareRTCP(webrtc::RTCPSender::FeedbackState const&, unsigned int, int, unsigned short const*, bool, unsigned long long, unsigned char*, int) in libEaseMobClientSDK.a(rtcp_sender.o) ... "std::locale::~locale()", referenced from: webrtc::LogMessage::~LogMessage() in libEaseMobClientSDK.a(logging.o) webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libEaseMobClientSDK.a(rtcp_sender.o) "vtable for std::basic_ios >", referenced from: webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "std::basic_string, std::allocator >::basic_string(char const*, unsigned long, std::allocator const&)", referenced from: webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) "vtable for std::basic_ostringstream, std::allocator >", referenced from: webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "vtable for std::basic_streambuf >", referenced from: webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::LogMessage::~LogMessage() in libEaseMobClientSDK.a(logging.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libEaseMobClientSDK.a(rtcp_sender.o) NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "std::basic_ios >::clear(std::_Ios_Iostate)", referenced from: webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::FilePlayerImpl::StartPlayingFile(char const*, bool, unsigned int, float, unsigned int, unsigned int, webrtc::CodecInst const*) in libEaseMobClientSDK.a(file_player_impl.o) webrtc::RtpReceiverImpl::RegisterReceivePayload(char const*, signed char, unsigned int, unsigned char, unsigned int) in libEaseMobClientSDK.a(rtp_receiver_impl.o) webrtc::FileRecorderImpl::StartRecordingAudioFile(char const*, webrtc::CodecInst const&, unsigned int, webrtc::ACMAMRPackingFormat) in libEaseMobClientSDK.a(file_recorder_impl.o) webrtc::RTPReceiverAudio::InvokeOnInitializeDecoder(webrtc::RtpFeedback*, int, signed char, char const*, webrtc::PayloadUnion const&) const in libEaseMobClientSDK.a(rtp_receiver_audio.o) "vtable for std::basic_stringbuf, std::allocator >", referenced from: webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::LogMessage::~LogMessage() in libEaseMobClientSDK.a(logging.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libEaseMobClientSDK.a(rtcp_sender.o) NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "std::ostream& std::ostream::_M_insert(unsigned long)", referenced from: webrtc::ModuleRtpRtcpImpl::SetMaxTransferUnit(unsigned short) in libEaseMobClientSDK.a(rtp_rtcp_impl.o) webrtc::NACKStringBuilder::PushNACK(unsigned short) in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPReceiver::ResetRTT(unsigned int) in libEaseMobClientSDK.a(rtcp_receiver.o) webrtc::RTCPReceiver::HandleReportBlock(webrtc::RTCPUtility::RTCPPacket const&, webrtc::RTCPHelp::RTCPPacketInformation&, unsigned int, unsigned char) in libEaseMobClientSDK.a(rtcp_receiver.o) webrtc::SendSideBandwidthEstimation::CapBitrateToThresholds() in libEaseMobClientSDK.a(send_side_bandwidth_estimation.o) webrtc::RTPSender::SetMaxPayloadLength(unsigned short, unsigned short) in libEaseMobClientSDK.a(rtp_sender.o) ... "std::_List_node_base::transfer(std::_List_node_base*, std::_List_node_base*)", referenced from: webrtc::AudioConferenceMixerImpl::GetAdditionalAudio(std::list >*) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) void std::list >::sort(bool (*)(webrtc::DtmfEvent const&, webrtc::DtmfEvent const&)) in libEaseMobClientSDK.a(dtmf_buffer.o) webrtc::PayloadSplitter::SplitRed(std::list >*) in libEaseMobClientSDK.a(payload_splitter.o) webrtc::PayloadSplitter::SplitAudio(std::list >*, webrtc::DecoderDatabase const&) in libEaseMobClientSDK.a(payload_splitter.o) "std::string::_Rep::_M_destroy(std::allocator const&)", referenced from: webrtc::LogMessage::~LogMessage() in libEaseMobClientSDK.a(logging.o) webrtc::voe::Channel::SendPacket(int, void const*, int) in libEaseMobClientSDK.a(channel.o) webrtc::voe::Channel::SendRTCPPacket(int, void const*, int) in libEaseMobClientSDK.a(channel.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPSender::PrepareRTCP(webrtc::RTCPSender::FeedbackState const&, unsigned int, int, unsigned short const*, bool, unsigned long long, unsigned char*, int) in libEaseMobClientSDK.a(rtcp_sender.o) "std::_List_node_base::swap(std::_List_node_base&, std::_List_node_base&)", referenced from: void std::list >::sort(bool (*)(webrtc::DtmfEvent const&, webrtc::DtmfEvent const&)) in libEaseMobClientSDK.a(dtmf_buffer.o) "std::_Rb_tree_increment(std::_Rb_tree_node_base const*)", referenced from: webrtc::ReceiveStatisticsImpl::GetActiveStatisticians() const in libEaseMobClientSDK.a(receive_statistics_impl.o) webrtc::RTPPayloadRegistry::ReceivePayloadType(char const*, unsigned int, unsigned char, unsigned int, signed char*) const in libEaseMobClientSDK.a(rtp_payload_registry.o) webrtc::RTCPSender::PrepareRTCP(webrtc::RTCPSender::FeedbackState const&, unsigned int, int, unsigned short const*, bool, unsigned long long, unsigned char*, int) in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPSender::WriteReportBlocksToBuffer(unsigned char*, int, std::map, std::allocator > > const&) in libEaseMobClientSDK.a(rtcp_sender.o) webrtc::RTCPReceiver::LastReceivedReceiverReport() const in libEaseMobClientSDK.a(rtcp_receiver.o) webrtc::RTCPReceiver::StatisticsReceived(std::vector >*) const in libEaseMobClientSDK.a(rtcp_receiver.o) webrtc::RTCPReceiver::UpdateTMMBR() in libEaseMobClientSDK.a(rtcp_receiver.o) ... "std::_Rb_tree_increment(std::_Rb_tree_node_base*)", referenced from: webrtc::VoiceEngineImpl::~VoiceEngineImpl() in libEaseMobClientSDK.a(voice_engine_impl.o) webrtc::AudioProcessing::Create() in libEaseMobClientSDK.a(audio_processing_impl.o) webrtc::voe::Channel::Channel(int, unsigned int, webrtc::Config const&, media_callback*, bool) in libEaseMobClientSDK.a(channel.o) std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) in libEaseMobClientSDK.a(channel.o) webrtc::AudioConferenceMixerImpl::Init() in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::AudioConferenceMixerImpl::Process() in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) webrtc::AudioConferenceMixerImpl::UpdateToMix(std::list >*, std::list >*, std::map, std::allocator > >*, unsigned long&) in libEaseMobClientSDK.a(audio_conference_mixer_impl.o) ... "std::basic_ios >::init(std::basic_streambuf >*)", referenced from: webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) "std::basic_stringbuf, std::allocator >::_M_sync(char*, unsigned long, unsigned long)", referenced from: webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o) "std::ostream& std::ostream::_M_insert(bool)", referenced from: webrtc::VoEBaseImpl::Init(webrtc::AudioDeviceModule*, webrtc::AudioProcessing*) in libEaseMobClientSDK.a(voe_base_impl.o) "std::ios_base::Init::Init()", referenced from: __GLOBAL__I_a in libEaseMobClientSDK.a(webrtc_voiceengine.o) "std::basic_ostream >& std::__ostream_insert >(std::basic_ostream >&, char const*, long)", referenced from: webrtc::VoEAudioProcessingImpl::SetTypingDetectionStatus(bool) in libEaseMobClientSDK.a(voe_audio_processing_impl.o) webrtc::VoEAudioProcessingImpl::TimeSinceLastTyping(int&) in libEaseMobClientSDK.a(voe_audio_processing_impl.o) webrtc::VoEAudioProcessingImpl::SetTypingDetectionParameters(int, int, int, int, int) in libEaseMobClientSDK.a(voe_audio_processing_impl.o) webrtc::VoEBaseImpl::Init(webrtc::AudioDeviceModule*, webrtc::AudioProcessing*) in libEaseMobClientSDK.a(voe_base_impl.o) webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::AudioProcessingImpl::ProcessStream(webrtc::AudioFrame*) in libEaseMobClientSDK.a(audio_processing_impl.o) webrtc::voe::TransmitMixer::ProcessAudio(int, int, int, bool) in libEaseMobClientSDK.a(transmit_mixer.o) ... "std::locale::locale()", referenced from: webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libEaseMobClientSDK.a(logging.o) webrtc::NACKStringBuilder::NACKStringBuilder() in libEaseMobClientSDK.a(rtcp_sender.o)ld: symbol(s) not found for architecture arm64clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决方案

看起来是没找到c++的依赖库。试试在依赖库那里加上stdc++6.0.9
解决方案二:
这个库导了吗libstdc++.6.0.9.dylib
解决方案三:
原来是要再引用个libstdc++.6.0.9.dylib呀!谢谢啦!

时间: 2024-08-03 10:13:58

libEaseMobClientSDKLite.a编译正常,换成libEaseMobClientSDK.a编译错误的相关文章

图形界面编译工具Koala将SASS文件编译成CSS文件

文章简介:本文主要通过创建一个SASS项目为实例,带领大家如何使用Koala这样的图形界面编译工具来将你的SASS项目,将SASS文件编译成CSS文件. <SASS界面编译工具--Codekit的使用>一文中图解了"CodeKit"图形工具编译SASS项目.由于CodeKit是一款付费工具,而且只能在Mac中使用,因此国内众多SASS爱好者,或者初学者也就无法体验CodeKit工具编译SASS项目.幸运的是,有一款国产图形工具Koala和CodeKit功能极其类似,支持多个

这个c++程序如何换成c

问题描述 这个c++程序如何换成c 5C #include #include using namespace std;class Data{public:Data();Data(int istring nint b);void SetId(int i);void SetName(string n);void SetBorrow(int b);int GetId()const;string GetName()const;int GetBorrow()const;private:int id;str

关于mybatis.net,net4.5没问题,换成net4.0后出现如下问题,表示非常奇怪

问题描述 关于mybatis.net,net4.5没问题,换成net4.0后出现如下问题,表示非常奇怪 initialize result property: Id The error occurred in . Check the Person.PersonResult. 求指教. 解决方案 你确认比的地方没有更改么?重新编译下,检查下配置文件 解决方案二: 4.5 换成 4.0 那关注的东西还是有点的 如果是MVC的网站4.5 降到 4.0 那边你以前引用的NuGet的包都需要重新更新 把版

vc++-在VC++6.0操作access2003程序里换成操作access2007

问题描述 在VC++6.0操作access2003程序里换成操作access2007 用VC和数据库access2003编好的程序中把数据库换成access2007需要修改哪些内容呢?新手求助高手 解决方案 主要是导入新的access类库,然后再编译,有没有错误,再修改 解决方案二: 只要数据源和名称和操作没有变化,就没有太大的变化. 还是你自己调试一下,然后有具体的问题再来提. 解决方案三: 如果用的是oledb的话,只需要更改driver格式就可以了,2000-2003用的是mdb,2007

Myeclipse把tomcat 6.0换成 tomcat 7.0出现这种错误求大神帮忙

问题描述 Myeclipse把tomcat 6.0换成 tomcat 7.0出现这种错误求大神帮忙 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/eco]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase

ubuntu上把gcc高版本换成低版本

问题描述 ubuntu上把gcc高版本换成低版本 我安装了ubuntu14.04,gcc默认版本为4.8,可是我要用gcc4.7,怎么也换不过来了,各位有谁指点一下 解决方案 降低版本的方法是,把ubuntu的sources.list 中的源,改为低版本的源,这样,通过apt-get 就能下载到想要的低版本. 解决方案二: 可以从源码单独安装gcc4.7.然后建立软连接gcc4.7.需要的地方用gcc4.7编译

wps自带公式编辑器怎么换成mathtype?

  wps自带公式编辑器怎么换成mathtype?           1.点击开始,我是win7系统,选择mathtype 6 中的Equation Conversion Manager后弹出窗口,具体选择看下面 2.弹出窗口后会看到不转换方框内有一个wps 3.0点击左移到转换mathtype 6.0 Equatuin点击确定,再次打开wps就能使用mathtype插入公式到wps. 3.注意有时候点击Equation Conversion Manager后弹出窗口说Equation Con

笔记本换成XP系统后IExplore.exe应用程序错误

笔记本换成XP系统后,单击我的电脑或者别的时候,有时会提示,下面的错误提示: --------------------------- IExplore.exe - 应用程序错误 --------------------------- "0x00a1bdb3" 指令引用的 "0x00000001" 内存.该内存不能为 "read". 要终止程序,请单击"确定". 要调试程序,请单击"取消". --------

笔记本换成XP系统后打开风行报错

笔记本换成XP系统后,打开风行的时候,回报下面的错误: --------------------------- Msg: FunshionWeb.exe - 无法找到入口 --------------------------- 无法定位程序输入点 CreateUri 于动态链接库 urlmon.dll 上. --------------------------- 确定 --------------------------- 解决方法: 打开开始--运行 输入msconfig回车 打开启动选项卡