"std::_List_node_base::reverse()","std::_List_node_base::swap(std::_List_node_base&, std::_List_node


今天写项目,遇到了如下问题:

Undefined symbols for architecture arm64:

  "std::_List_node_base::reverse()", referenced from:

      webrtc::PayloadSplitter::SplitRed(std::list<webrtc::Packet*, std::allocator<webrtc::Packet*> >*) in libHyphenateFullSDK.a(payload_splitter.o)

  "std::_List_node_base::swap(std::_List_node_base&, std::_List_node_base&)", referenced from:

      void std::list<webrtc::DtmfEvent, std::allocator<webrtc::DtmfEvent> >::sort<bool (*)(webrtc::DtmfEvent const&, webrtc::DtmfEvent const&)>(bool (*)(webrtc::DtmfEvent const&, webrtc::DtmfEvent const&)) in libHyphenateFullSDK.a(dtmf_buffer.o)

  "std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::_M_sync(char*, unsigned long, unsigned long)", referenced from:

      webrtc::NACKStringBuilder::NACKStringBuilder() in libHyphenateFullSDK.a(rtcp_sender.o)

  "std::ostream& std::ostream::_M_insert<void const*>(void const*)", referenced from:

      webrtc::voe::RemixAndResample(webrtc::AudioFrame const&, webrtc::PushResampler<short>*, webrtc::AudioFrame*) in libHyphenateFullSDK.a(utility.o)

      webrtc::voe::DownConvertToCodecFormat(short const*, int, int, int, int, int, short*, webrtc::PushResampler<short>*, webrtc::AudioFrame*) in libHyphenateFullSDK.a(utility.o)

      webrtc::acm2::ACMResampler::Resample10Msec(short const*, int, int, int, int, short*) in libHyphenateFullSDK.a(acm_resampler.o)

  "std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)", referenced from:

      char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) in libHyphenateFullSDK.a(jsoncpp.o)

  "std::string::_Rep::_S_terminal", referenced from:

      char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) in libHyphenateFullSDK.a(jsoncpp.o)

  "std::__throw_logic_error(char const*)", referenced from:

      char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) in libHyphenateFullSDK.a(jsoncpp.o)

  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(unsigned long, char, std::allocator<char> const&)", referenced from:

      Json_em::StyledWriter::indent() in libHyphenateFullSDK.a(jsoncpp.o)

  "std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:

      std::_Rb_tree<Json_em::Value::CZString, std::pair<Json_em::Value::CZString const, Json_em::Value>, std::_Select1st<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::less<Json_em::Value::CZString>, std::allocator<std::pair<Json_em::Value::CZString const, Json_em::Value> > >::erase(std::_Rb_tree_iterator<std::pair<Json_em::Value::CZString const, Json_em::Value> >) in libHyphenateFullSDK.a(jsoncpp.o)

      webrtc::AudioConferenceMixerImpl::UpdateToMix(std::list<webrtc::AudioFrame*, std::allocator<webrtc::AudioFrame*> >*, std::list<webrtc::AudioFrame*, std::allocator<webrtc::AudioFrame*> >*, std::map<int, webrtc::MixerParticipant*, std::less<int>, std::allocator<std::pair<int const, webrtc::MixerParticipant*> > >*, unsigned long&) in libHyphenateFullSDK.a(audio_conference_mixer_impl.o)

      webrtc::BitrateControllerImpl::NormalRateAllocation(unsigned int, unsigned char, unsigned int, unsigned int) in libHyphenateFullSDK.a(bitrate_controller_impl.o)

      webrtc::ReceiveStatisticsImpl::~ReceiveStatisticsImpl() in libHyphenateFullSDK.a(receive_statistics_impl.o)

      non-virtual thunk to webrtc::ReceiveStatisticsImpl::~ReceiveStatisticsImpl() in libHyphenateFullSDK.a(receive_statistics_impl.o)

      non-virtual thunk to webrtc::ReceiveStatisticsImpl::~ReceiveStatisticsImpl() in libHyphenateFullSDK.a(receive_statistics_impl.o)

      webrtc::ReceiveStatisticsImpl::~ReceiveStatisticsImpl() in libHyphenateFullSDK.a(receive_statistics_impl.o)

      ...

  "std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(std::_Ios_Openmode)", referenced from:

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

  "std::ostream::operator<<(short)", referenced from:

      webrtc::NetEqImpl::DecodeLoop(std::list<webrtc::Packet*, std::allocator<webrtc::Packet*> >*, webrtc::Operations*, webrtc::AudioDecoder*, int*, webrtc::AudioDecoder::SpeechType*) in libHyphenateFullSDK.a(neteq_impl.o)

  "std::basic_ios<char, std::char_traits<char> >::widen(char) const", referenced from:

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

  "std::_Rb_tree_decrement(std::_Rb_tree_node_base const*)", referenced from:

      Json_em::Value::size() const in libHyphenateFullSDK.a(jsoncpp.o)

  "std::runtime_error::runtime_error(std::string const&)", referenced from:

      Json_em::Value::asString() const in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Value::operator[](int) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::operator>>(std::istream&, Json_em::Value&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Value::CommentInfo::setComment(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Value::CZString::CZString(char const*, Json_em::Value::CZString::DuplicationPolicy) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Value::CZString::CZString(Json_em::Value::CZString const&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Value::Value(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      ...

  "std::string::reserve(unsigned long)", referenced from:

      Json_em::Reader::decodeString(Json_em::Reader::Token&, std::string&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::normalizeEOL(std::string const&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledStreamWriter::normalizeEOL(std::string const&) in libHyphenateFullSDK.a(jsoncpp.o)

      std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libHyphenateFullSDK.a(jsoncpp.o)

  "std::string::push_back(char)", referenced from:

      Json_em::Reader::decodeString(Json_em::Reader::Token&, std::string&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::writeCommentBeforeValue(Json_em::Value const&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::writeIndent() in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::normalizeEOL(std::string const&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledStreamWriter::normalizeEOL(std::string const&) in libHyphenateFullSDK.a(jsoncpp.o)

  "std::__throw_out_of_range(char const*)", referenced from:

      webrtc::RTCPSender::BuildTMMBR(webrtc::ModuleRtpRtcpImpl*, unsigned char*, int&) in libHyphenateFullSDK.a(rtcp_sender.o)

      webrtc::RTCPSender::BuildTMMBN(unsigned char*, int&) in libHyphenateFullSDK.a(rtcp_sender.o)

      webrtc::RTCPReceiver::BoundingSet(bool&, webrtc::TMMBRSet*) in libHyphenateFullSDK.a(rtcp_receiver.o)

      webrtc::RTCPHelp::RTCPReceiveInformation::InsertTMMBRItem(unsigned int, webrtc::RTCPUtility::RTCPPacketRTPFBTMMBRItem const&, long long) in libHyphenateFullSDK.a(rtcp_receiver_help.o)

      webrtc::RTCPHelp::RTCPReceiveInformation::GetTMMBRSet(unsigned int, unsigned int, webrtc::TMMBRSet*, long long) in libHyphenateFullSDK.a(rtcp_receiver_help.o)

      webrtc::RTPPacketHistory::GetPacketAndSetSendTime(unsigned short, unsigned int, bool, unsigned char*, unsigned short*, long long*) in libHyphenateFullSDK.a(rtp_packet_history.o)

      webrtc::RTPPacketHistory::GetBestFittingPacket(unsigned char*, unsigned short*, long long*) in libHyphenateFullSDK.a(rtp_packet_history.o)

      ...

  "std::string::append(std::string const&)", referenced from:

      Json_em::Reader::addComment(char const*, char const*, Json_em::CommentPlacement) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Reader::decodeString(Json_em::Reader::Token&, std::string&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Reader::getFormattedErrorMessages() const in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::FastWriter::writeValue(Json_em::Value const&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::writeValue(Json_em::Value const&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::writeCommentAfterValueOnSameLine(Json_em::Value const&) in libHyphenateFullSDK.a(jsoncpp.o)

      ...

  "std::string::find_last_not_of(char const*, unsigned long, unsigned long) const", referenced from:

      Json_em::Reader::readValue() in libHyphenateFullSDK.a(jsoncpp.o)

  "std::string::resize(unsigned long, char)", referenced from:

      Json_em::Reader::decodeString(Json_em::Reader::Token&, std::string&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::unindent() in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledStreamWriter::unindent() in libHyphenateFullSDK.a(jsoncpp.o)

  "std::string::_M_mutate(unsigned long, unsigned long, unsigned long)", referenced from:

      Json_em::Reader::readValue() in libHyphenateFullSDK.a(jsoncpp.o)

  "std::string::erase(unsigned long, unsigned long)", referenced from:

      Json_em::Reader::readValue() in libHyphenateFullSDK.a(jsoncpp.o)

  "std::basic_istream<char, std::char_traits<char> >& std::getline<char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char)", referenced from:

      Json_em::Reader::parse(std::istream&, Json_em::Value&, bool) in libHyphenateFullSDK.a(jsoncpp.o)

  "std::_Rb_tree_decrement(std::_Rb_tree_node_base*)", referenced from:

      std::_Rb_tree<void*, std::pair<void* const, webrtc::Config::BaseOption*>, std::_Select1st<std::pair<void* const, webrtc::Config::BaseOption*> >, std::less<void*>, std::allocator<std::pair<void* const, webrtc::Config::BaseOption*> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<void* const, webrtc::Config::BaseOption*> >, std::pair<void* const, webrtc::Config::BaseOption*> const&) in libHyphenateFullSDK.a(channel.o)

      std::_Rb_tree<void*, std::pair<void* const, webrtc::Config::BaseOption*>, std::_Select1st<std::pair<void* const, webrtc::Config::BaseOption*> >, std::less<void*>, std::allocator<std::pair<void* const, webrtc::Config::BaseOption*> > >::_M_insert_unique(std::pair<void* const, webrtc::Config::BaseOption*> const&) in libHyphenateFullSDK.a(channel.o)

      Json_em::ValueIteratorBase::decrement() in libHyphenateFullSDK.a(jsoncpp.o)

      std::_Rb_tree<Json_em::Value::CZString, std::pair<Json_em::Value::CZString const, Json_em::Value>, std::_Select1st<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::less<Json_em::Value::CZString>, std::allocator<std::pair<Json_em::Value::CZString const, Json_em::Value> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::pair<Json_em::Value::CZString const, Json_em::Value> const&) in libHyphenateFullSDK.a(jsoncpp.o)

      std::_Rb_tree<Json_em::Value::CZString, std::pair<Json_em::Value::CZString const, Json_em::Value>, std::_Select1st<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::less<Json_em::Value::CZString>, std::allocator<std::pair<Json_em::Value::CZString const, Json_em::Value> > >::_M_insert_unique(std::pair<Json_em::Value::CZString const, Json_em::Value> const&) in libHyphenateFullSDK.a(jsoncpp.o)

      std::_Rb_tree<int, std::pair<int const, webrtc::MixerParticipant*>, std::_Select1st<std::pair<int const, webrtc::MixerParticipant*> >, std::less<int>, std::allocator<std::pair<int const, webrtc::MixerParticipant*> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<int const, webrtc::MixerParticipant*> >, std::pair<int const, webrtc::MixerParticipant*> const&) in libHyphenateFullSDK.a(audio_conference_mixer_impl.o)

      std::_Rb_tree<int, std::pair<int const, webrtc::MixerParticipant*>, std::_Select1st<std::pair<int const, webrtc::MixerParticipant*> >, std::less<int>, std::allocator<std::pair<int const, webrtc::MixerParticipant*> > >::_M_insert_unique(std::pair<int const, webrtc::MixerParticipant*> const&) in libHyphenateFullSDK.a(audio_conference_mixer_impl.o)

      ...

  "std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const", referenced from:

      webrtc::LogMessage::~LogMessage() in libHyphenateFullSDK.a(logging.o)

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libHyphenateFullSDK.a(rtcp_sender.o)

  "std::locale::~locale()", referenced from:

      webrtc::LogMessage::~LogMessage() in libHyphenateFullSDK.a(logging.o)

      webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libHyphenateFullSDK.a(rtcp_sender.o)

  "std::ios_base::ios_base()", referenced from:

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::NACKStringBuilder::NACKStringBuilder() in libHyphenateFullSDK.a(rtcp_sender.o)

  "vtable for std::basic_ios<char, std::char_traits<char> >", referenced from:

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::NACKStringBuilder::NACKStringBuilder() in libHyphenateFullSDK.a(rtcp_sender.o)

  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.

  "vtable for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >", referenced from:

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::NACKStringBuilder::NACKStringBuilder() in libHyphenateFullSDK.a(rtcp_sender.o)

  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.

  "std::_Rb_tree_increment(std::_Rb_tree_node_base const*)", referenced from:

      Json_em::Value::operator==(Json_em::Value const&) const in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Value::getMemberNames() const in libHyphenateFullSDK.a(jsoncpp.o)

      bool std::lexicographical_compare<std::_Rb_tree_const_iterator<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::_Rb_tree_const_iterator<std::pair<Json_em::Value::CZString const, Json_em::Value> > >(std::_Rb_tree_const_iterator<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::_Rb_tree_const_iterator<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::_Rb_tree_const_iterator<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::_Rb_tree_const_iterator<std::pair<Json_em::Value::CZString const, Json_em::Value> >) in libHyphenateFullSDK.a(jsoncpp.o)

      webrtc::ReceiveStatisticsImpl::GetActiveStatisticians() const in libHyphenateFullSDK.a(receive_statistics_impl.o)

      webrtc::RTPPayloadRegistry::ReceivePayloadType(char const*, unsigned int, unsigned char, unsigned int, signed char*) const in libHyphenateFullSDK.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 libHyphenateFullSDK.a(rtcp_sender.o)

      webrtc::RTCPSender::WriteReportBlocksToBuffer(unsigned char*, int, std::map<unsigned int, webrtc::RTCPReportBlock*, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, webrtc::RTCPReportBlock*> > > const&) in libHyphenateFullSDK.a(rtcp_sender.o)

      ...

  "std::ios_base::~ios_base()", referenced from:

      webrtc::LogMessage::~LogMessage() in libHyphenateFullSDK.a(logging.o)

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libHyphenateFullSDK.a(rtcp_sender.o)

  "vtable for std::basic_streambuf<char, std::char_traits<char> >", referenced from:

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::LogMessage::~LogMessage() in libHyphenateFullSDK.a(logging.o)

      webrtc::NACKStringBuilder::NACKStringBuilder() in libHyphenateFullSDK.a(rtcp_sender.o)

      webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libHyphenateFullSDK.a(rtcp_sender.o)

  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.

  "std::locale::locale()", referenced from:

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::NACKStringBuilder::NACKStringBuilder() in libHyphenateFullSDK.a(rtcp_sender.o)

  "std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)", referenced from:

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::FilePlayerImpl::StartPlayingFile(char const*, bool, unsigned int, float, unsigned int, unsigned int, webrtc::CodecInst const*) in libHyphenateFullSDK.a(file_player_impl.o)

      webrtc::RtpReceiverImpl::RegisterReceivePayload(char const*, signed char, unsigned int, unsigned char, unsigned int) in libHyphenateFullSDK.a(rtp_receiver_impl.o)

      webrtc::FileRecorderImpl::StartRecordingAudioFile(char const*, webrtc::CodecInst const&, unsigned int, webrtc::ACMAMRPackingFormat) in libHyphenateFullSDK.a(file_recorder_impl.o)

      webrtc::RTPReceiverAudio::InvokeOnInitializeDecoder(webrtc::RtpFeedback*, int, signed char, char const*, webrtc::PayloadUnion const&) const in libHyphenateFullSDK.a(rtp_receiver_audio.o)

  "_iconv", referenced from:

      _em_avcodec_decode_subtitle2 in libHyphenateFullSDK.a(utils.o)

  "vtable for std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >", referenced from:

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::LogMessage::~LogMessage() in libHyphenateFullSDK.a(logging.o)

      webrtc::NACKStringBuilder::NACKStringBuilder() in libHyphenateFullSDK.a(rtcp_sender.o)

      webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libHyphenateFullSDK.a(rtcp_sender.o)

  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.

  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)", referenced from:

      on_data_recvfrom(pj_activesock_t*, void*, unsigned long, void const*, int, int) in libHyphenateFullSDK.a(eice.o)

      _json_get_string(Json_em::Value&, char const*, std::string const&) in libHyphenateFullSDK.a(eice.o)

      std::vector<eice_addr_pair, std::allocator<eice_addr_pair> >::push_back(eice_addr_pair const&) in libHyphenateFullSDK.a(eice.o)

      std::vector<eice_addr_pair, std::allocator<eice_addr_pair> >::_M_insert_aux(__gnu_cxx::__normal_iterator<eice_addr_pair*, std::vector<eice_addr_pair, std::allocator<eice_addr_pair> > >, eice_addr_pair const&) in libHyphenateFullSDK.a(eice.o)

      eice_addr_pair::eice_addr_pair(std::string const&, int, std::string const&, int, int) in libHyphenateFullSDK.a(eice.o)

      Json_em::Reader::decodeNumber(Json_em::Reader::Token&, Json_em::Value&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Reader::decodeDouble(Json_em::Reader::Token&, Json_em::Value&) in libHyphenateFullSDK.a(jsoncpp.o)

      ...

  "_sqlite3_column_name", referenced from:

      easemob::Statement::columnIndexMap() in libHyphenateFullSDK.a(sqlite.o)

  "std::ios_base::Init::Init()", referenced from:

      __GLOBAL__sub_I_webrtc_voiceengine.cc in libHyphenateFullSDK.a(webrtc_voiceengine.o)

  "std::string::_Rep::_M_destroy(std::allocator<char> const&)", referenced from:

      confice_free(tag_confice*) in libHyphenateFullSDK.a(eice.o)

      confice_new(Json_em::Value&, pj_ice_strans_cfg*, pj_pool_t*, int, int, std::string&, std::string&, std::string&, std::string&, confice_cb const*, void*, tag_confice**) in libHyphenateFullSDK.a(eice.o)

      on_data_recvfrom(pj_activesock_t*, void*, unsigned long, void const*, int, int) in libHyphenateFullSDK.a(eice.o)

      _eice_new in libHyphenateFullSDK.a(eice.o)

      _parse_remote(eice_st*, char const*, int) in libHyphenateFullSDK.a(eice.o)

      _eice_free in libHyphenateFullSDK.a(eice.o)

      _eice_get_nego_result in libHyphenateFullSDK.a(eice.o)

      ...

  "_iconv_open", referenced from:

      _em_avcodec_open2 in libHyphenateFullSDK.a(utils.o)

      _em_avcodec_decode_subtitle2 in libHyphenateFullSDK.a(utils.o)

  "_iconv_close", referenced from:

      _em_avcodec_open2 in libHyphenateFullSDK.a(utils.o)

      _em_avcodec_decode_subtitle2 in libHyphenateFullSDK.a(utils.o)

  "_compress", referenced from:

      easemob::protocol::CompressionZlib::compress(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libHyphenateFullSDK.a(emcompressionzlib.o)

     (maybe you meant: _lame_get_compression_ratio, _lame_set_compression_ratio , __ZN6webrtc15GainControlImpl23set_compression_gain_dbEi , _OBJC_IVAR_$_EMImageMessageBody._compressionRatio )

  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, unsigned long, std::allocator<char> const&)", referenced from:

      _eice_new in libHyphenateFullSDK.a(eice.o)

      _parse_remote(eice_st*, char const*, int) in libHyphenateFullSDK.a(eice.o)

      _eice_get_local in libHyphenateFullSDK.a(eice.o)

      _eice_get_nego_result in libHyphenateFullSDK.a(eice.o)

      cand_to_json_value(int, int, pj_ice_sess_cand const*, Json_em::Value&) in libHyphenateFullSDK.a(eice.o)

      webrtc::NACKStringBuilder::NACKStringBuilder() in libHyphenateFullSDK.a(rtcp_sender.o)

  "_inflateEnd", referenced from:

      _http_close in libHyphenateFullSDK.a(http.o)

      _http_read_header in libHyphenateFullSDK.a(http.o)

  "std::__throw_length_error(char const*)", referenced from:

      std::vector<std::string, std::allocator<std::string> >::reserve(unsigned long) in libHyphenateFullSDK.a(jsoncpp.o)

      std::deque<Json_em::Reader::ErrorInfo, std::allocator<Json_em::Reader::ErrorInfo> >::_M_new_elements_at_front(unsigned long) in libHyphenateFullSDK.a(jsoncpp.o)

      std::deque<Json_em::Reader::ErrorInfo, std::allocator<Json_em::Reader::ErrorInfo> >::_M_new_elements_at_back(unsigned long) in libHyphenateFullSDK.a(jsoncpp.o)

      webrtc::AudioBuffer::AudioBuffer(int, int, int, int, int) in libHyphenateFullSDK.a(audio_buffer.o)

      std::vector<void*, std::allocator<void*> >::_M_fill_insert(__gnu_cxx::__normal_iterator<void**, std::vector<void*, std::allocator<void*> > >, unsigned long, void* const&) in libHyphenateFullSDK.a(processing_component.o)

      std::vector<std::vector<unsigned char, std::allocator<unsigned char> >, std::allocator<std::vector<unsigned char, std::allocator<unsigned char> > > >::_M_fill_insert(__gnu_cxx::__normal_iterator<std::vector<unsigned char, std::allocator<unsigned char> >*, std::vector<std::vector<unsigned char, std::allocator<unsigned char> >, std::allocator<std::vector<unsigned char, std::allocator<unsigned char> > > > >, unsigned long, std::vector<unsigned char, std::allocator<unsigned char> > const&) in libHyphenateFullSDK.a(rtp_packet_history.o)

      std::vector<unsigned short, std::allocator<unsigned short> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned short*, std::vector<unsigned short, std::allocator<unsigned short> > >, unsigned long, unsigned short const&) in libHyphenateFullSDK.a(rtp_packet_history.o)

      ...

  "std::string::append(char const*, unsigned long)", referenced from:

      on_data_recvfrom(pj_activesock_t*, void*, unsigned long, void const*, int, int) in libHyphenateFullSDK.a(eice.o)

      Json_em::Reader::decodeNumber(Json_em::Reader::Token&, Json_em::Value&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Reader::decodeDouble(Json_em::Reader::Token&, Json_em::Value&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Reader::getFormattedErrorMessages() const in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::write(Json_em::Value const&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::FastWriter::write(Json_em::Value const&) in libHyphenateFullSDK.a(jsoncpp.o)

      ...

  "std::string::assign(std::string const&)", referenced from:

      on_data_recvfrom(pj_activesock_t*, void*, unsigned long, void const*, int, int) in libHyphenateFullSDK.a(eice.o)

      _eice_new in libHyphenateFullSDK.a(eice.o)

      _parse_remote(eice_st*, char const*, int) in libHyphenateFullSDK.a(eice.o)

      std::vector<eice_addr_pair, std::allocator<eice_addr_pair> >::_M_insert_aux(__gnu_cxx::__normal_iterator<eice_addr_pair*, std::vector<eice_addr_pair, std::allocator<eice_addr_pair> > >, eice_addr_pair const&) in libHyphenateFullSDK.a(eice.o)

      Json_em::Reader::parse(std::string const&, Json_em::Value&, bool) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Reader::parse(std::istream&, Json_em::Value&, bool) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Reader::addError(std::string const&, Json_em::Reader::Token&, char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      ...

  "std::ostream::operator<<(int)", referenced from:

      webrtc::VoEBaseImpl::Init(webrtc::AudioDeviceModule*, webrtc::AudioProcessing*) in libHyphenateFullSDK.a(voe_base_impl.o)

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::voe::TransmitMixer::ProcessAudio(int, int, int, bool) in libHyphenateFullSDK.a(transmit_mixer.o)

      webrtc::voe::Channel::GetAudioFrame(int, webrtc::AudioFrame&) in libHyphenateFullSDK.a(channel.o)

      webrtc::voe::Channel::Init() in libHyphenateFullSDK.a(channel.o)

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      webrtc::FilePlayerImpl::Get10msAudioFromFile(short*, int&, int) in libHyphenateFullSDK.a(file_player_impl.o)

      ...

  "std::_Rb_tree_increment(std::_Rb_tree_node_base*)", referenced from:

      webrtc::VoiceEngineImpl::~VoiceEngineImpl() in libHyphenateFullSDK.a(voice_engine_impl.o)

      webrtc::AudioProcessing::Create() in libHyphenateFullSDK.a(audio_processing_impl.o)

      webrtc::voe::Channel::Channel(int, unsigned int, webrtc::Config const&, media_callback*, bool) in libHyphenateFullSDK.a(channel.o)

      std::_Rb_tree<void*, std::pair<void* const, webrtc::Config::BaseOption*>, std::_Select1st<std::pair<void* const, webrtc::Config::BaseOption*> >, std::less<void*>, std::allocator<std::pair<void* const, webrtc::Config::BaseOption*> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<void* const, webrtc::Config::BaseOption*> >, std::pair<void* const, webrtc::Config::BaseOption*> const&) in libHyphenateFullSDK.a(channel.o)

      Json_em::ValueIteratorBase::increment() in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::ValueIteratorBase::computeDistance(Json_em::ValueIteratorBase const&) const in libHyphenateFullSDK.a(jsoncpp.o)

      std::_Rb_tree<Json_em::Value::CZString, std::pair<Json_em::Value::CZString const, Json_em::Value>, std::_Select1st<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::less<Json_em::Value::CZString>, std::allocator<std::pair<Json_em::Value::CZString const, Json_em::Value> > >::erase(std::_Rb_tree_iterator<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::_Rb_tree_iterator<std::pair<Json_em::Value::CZString const, Json_em::Value> >) in libHyphenateFullSDK.a(jsoncpp.o)

      ...

  "std::ostream& std::ostream::_M_insert<bool>(bool)", referenced from:

      webrtc::VoEBaseImpl::Init(webrtc::AudioDeviceModule*, webrtc::AudioProcessing*) in libHyphenateFullSDK.a(voe_base_impl.o)

  "std::basic_ios<char, std::char_traits<char> >::init(std::basic_streambuf<char, std::char_traits<char> >*)", referenced from:

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::NACKStringBuilder::NACKStringBuilder() in libHyphenateFullSDK.a(rtcp_sender.o)

  "_inflateInit2_", referenced from:

      _http_read_header in libHyphenateFullSDK.a(http.o)

  "_gzwrite", referenced from:

      easemob::EMFileCompressor::addFileToGZ(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(emfilecompressor.o)

      easemob::EMFileCompressor::write(void const*, unsigned long) in libHyphenateFullSDK.a(emfilecompressor.o)

  "VTT for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >", referenced from:

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::LogMessage::~LogMessage() in libHyphenateFullSDK.a(logging.o)

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.o)

      webrtc::NACKStringBuilder::NACKStringBuilder() in libHyphenateFullSDK.a(rtcp_sender.o)

      webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libHyphenateFullSDK.a(rtcp_sender.o)

  "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:

      confice_new(Json_em::Value&, pj_ice_strans_cfg*, pj_pool_t*, int, int, std::string&, std::string&, std::string&, std::string&, confice_cb const*, void*, tag_confice**) in libHyphenateFullSDK.a(eice.o)

      on_data_recvfrom(pj_activesock_t*, void*, unsigned long, void const*, int, int) in libHyphenateFullSDK.a(eice.o)

      _eice_new in libHyphenateFullSDK.a(eice.o)

      _parse_remote(eice_st*, char const*, int) in libHyphenateFullSDK.a(eice.o)

      _eice_get_local in libHyphenateFullSDK.a(eice.o)

      parse_turn_config(eice_st*, Json_em::Value&, stun_bind_cfg&) in libHyphenateFullSDK.a(eice.o)

      _get_pairs_from_result(char const*, int*) in libHyphenateFullSDK.a(eice.o)

      ...

  "std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()", referenced from:

      Json_em::valueToQuotedString(char const*) in libHyphenateFullSDK.a(jsoncpp.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<void*, std::pair<void* const, webrtc::Config::BaseOption*>, std::_Select1st<std::pair<void* const, webrtc::Config::BaseOption*> >, std::less<void*>, std::allocator<std::pair<void* const, webrtc::Config::BaseOption*> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<void* const, webrtc::Config::BaseOption*> >, std::pair<void* const, webrtc::Config::BaseOption*> const&) in libHyphenateFullSDK.a(channel.o)

      std::_Rb_tree<void*, std::pair<void* const, webrtc::Config::BaseOption*>, std::_Select1st<std::pair<void* const, webrtc::Config::BaseOption*> >, std::less<void*>, std::allocator<std::pair<void* const, webrtc::Config::BaseOption*> > >::_M_insert_unique(std::pair<void* const, webrtc::Config::BaseOption*> const&) in libHyphenateFullSDK.a(channel.o)

      std::_Rb_tree<Json_em::Value::CZString, std::pair<Json_em::Value::CZString const, Json_em::Value>, std::_Select1st<std::pair<Json_em::Value::CZString const, Json_em::Value> >, std::less<Json_em::Value::CZString>, std::allocator<std::pair<Json_em::Value::CZString const, Json_em::Value> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<Json_em::Value::CZString const, Json_em::Value> const&) in libHyphenateFullSDK.a(jsoncpp.o)

      std::_Rb_tree<int, std::pair<int const, webrtc::MixerParticipant*>, std::_Select1st<std::pair<int const, webrtc::MixerParticipant*> >, std::less<int>, std::allocator<std::pair<int const, webrtc::MixerParticipant*> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<int const, webrtc::MixerParticipant*> >, std::pair<int const, webrtc::MixerParticipant*> const&) in libHyphenateFullSDK.a(audio_conference_mixer_impl.o)

      std::_Rb_tree<int, std::pair<int const, webrtc::MixerParticipant*>, std::_Select1st<std::pair<int const, webrtc::MixerParticipant*> >, std::less<int>, std::allocator<std::pair<int const, webrtc::MixerParticipant*> > >::_M_insert_unique(std::pair<int const, webrtc::MixerParticipant*> const&) in libHyphenateFullSDK.a(audio_conference_mixer_impl.o)

      webrtc::BitrateControllerImpl::NormalRateAllocation(unsigned int, unsigned char, unsigned int, unsigned int) in libHyphenateFullSDK.a(bitrate_controller_impl.o)

      std::_Rb_tree<unsigned int, std::pair<unsigned int const, unsigned int>, std::_Select1st<std::pair<unsigned int const, unsigned int> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<unsigned int const, unsigned int> >, std::pair<unsigned int const, unsigned int> const&) in libHyphenateFullSDK.a(bitrate_controller_impl.o)

      ...

  "_gzopen", referenced from:

      easemob::EMFileCompressor::createGZFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(emfilecompressor.o)

  "std::string::assign(char const*, unsigned long)", referenced from:

      _eice_new in libHyphenateFullSDK.a(eice.o)

      _parse_remote(eice_st*, char const*, int) in libHyphenateFullSDK.a(eice.o)

      Json_em::Reader::parse(char const*, char const*, Json_em::Value&, bool) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Reader::readValue() in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::Reader::readObject(Json_em::Reader::Token&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::write(Json_em::Value const&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::FastWriter::write(Json_em::Value const&) in libHyphenateFullSDK.a(jsoncpp.o)

      ...

  "_gzclose", referenced from:

      easemob::EMFileCompressor::~EMFileCompressor() in libHyphenateFullSDK.a(emfilecompressor.o)

      easemob::EMFileCompressor::closeGZFile() in libHyphenateFullSDK.a(emfilecompressor.o)

  "std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)", referenced from:

      webrtc::VoEAudioProcessingImpl::SetTypingDetectionStatus(bool) in libHyphenateFullSDK.a(voe_audio_processing_impl.o)

      webrtc::VoEAudioProcessingImpl::TimeSinceLastTyping(int&) in libHyphenateFullSDK.a(voe_audio_processing_impl.o)

      webrtc::VoEAudioProcessingImpl::SetTypingDetectionParameters(int, int, int, int, int) in libHyphenateFullSDK.a(voe_audio_processing_impl.o)

      webrtc::VoEBaseImpl::Init(webrtc::AudioDeviceModule*, webrtc::AudioProcessing*) in libHyphenateFullSDK.a(voe_base_impl.o)

      webrtc::LogMessage::LogMessage(char const*, int, webrtc::LoggingSeverity) in libHyphenateFullSDK.a(logging.o)

      webrtc::AudioProcessingImpl::ProcessStream(webrtc::AudioFrame*) in libHyphenateFullSDK.a(audio_processing_impl.o)

      webrtc::voe::TransmitMixer::ProcessAudio(int, int, int, bool) in libHyphenateFullSDK.a(transmit_mixer.o)

      ...

  "std::string::compare(char const*) const", referenced from:

      _parse_remote(eice_st*, char const*, int) in libHyphenateFullSDK.a(eice.o)

      test_expect::check_content(char const*) in libHyphenateFullSDK.a(eice.o)

      Json_em::Value::isConvertibleTo(Json_em::ValueType) const in libHyphenateFullSDK.a(jsoncpp.o)

  "std::_List_node_base::hook(std::_List_node_base*)", referenced from:

      YUVMediaBuffer::pushVideoPackage(char const*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) in libHyphenateFullSDK.a(x264codec.o)

      YUVMediaBuffer::pushAudioPackage(char const*, unsigned int, unsigned int) in libHyphenateFullSDK.a(x264codec.o)

      MediaBuffer::pushVideoPackage(unsigned char const*, unsigned int, unsigned int, unsigned int) in libHyphenateFullSDK.a(mediabuffer.o)

      MediaBuffer::pushAudioPackage(unsigned char const*, unsigned int, unsigned int) in libHyphenateFullSDK.a(mediabuffer.o)

      webrtc::AudioProcessingImpl::AudioProcessingImpl(webrtc::Config const&) in libHyphenateFullSDK.a(audio_processing_impl.o)

      webrtc::ProcessThreadImpl::RegisterModule(webrtc::Module*) in libHyphenateFullSDK.a(process_thread_impl.o)

      webrtc::AudioConferenceMixerImpl::Process() in libHyphenateFullSDK.a(audio_conference_mixer_impl.o)

      ...

  "std::_List_node_base::unhook()", referenced from:

      YUVMediaBuffer::Reset() in libHyphenateFullSDK.a(x264codec.o)

      YUVMediaBuffer::releaseBuffer(YUVMediaPackage*) in libHyphenateFullSDK.a(x264codec.o)

      MediaBuffer::Reset() in libHyphenateFullSDK.a(mediabuffer.o)

      MediaBuffer::releaseBuffer(MediaPackage*) in libHyphenateFullSDK.a(mediabuffer.o)

      webrtc::AudioProcessingImpl::~AudioProcessingImpl() in libHyphenateFullSDK.a(audio_processing_impl.o)

      webrtc::ProcessThreadImpl::DeRegisterModule(webrtc::Module const*) in libHyphenateFullSDK.a(process_thread_impl.o)

      webrtc::AudioConferenceMixerImpl::UpdateToMix(std::list<webrtc::AudioFrame*, std::allocator<webrtc::AudioFrame*> >*, std::list<webrtc::AudioFrame*, std::allocator<webrtc::AudioFrame*> >*, std::map<int, webrtc::MixerParticipant*, std::less<int>, std::allocator<std::pair<int const, webrtc::MixerParticipant*> > >*, unsigned long&) in libHyphenateFullSDK.a(audio_conference_mixer_impl.o)

      ...

  "std::ios_base::Init::~Init()", referenced from:

      __GLOBAL__sub_I_webrtc_voiceengine.cc in libHyphenateFullSDK.a(webrtc_voiceengine.o)

  "_sqlite3_open_v2", referenced from:

      easemob::Connection::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_errmsg", referenced from:

      easemob::Statement::Bind(int, int) in libHyphenateFullSDK.a(sqlite.o)

      easemob::Statement::Bind(int, long long) in libHyphenateFullSDK.a(sqlite.o)

      easemob::Statement::Bind(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(sqlite.o)

      easemob::Statement::BindNull(int) in libHyphenateFullSDK.a(sqlite.o)

      easemob::Connection::MakeStmt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<easemob::EMAttributeValue, std::__1::allocator<easemob::EMAttributeValue> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_inflate", referenced from:

      _http_read_stream in libHyphenateFullSDK.a(http.o)

  "std::string::_M_leak_hard()", referenced from:

      Json_em::Reader::decodeString(Json_em::Reader::Token&, std::string&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::writeCommentBeforeValue(Json_em::Value const&) in libHyphenateFullSDK.a(jsoncpp.o)

      Json_em::StyledWriter::writeIndent() in libHyphenateFullSDK.a(jsoncpp.o)

  "_sqlite3_open", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

  "_sqlite3_last_insert_rowid", referenced from:

      easemob::Connection::GetLastInsertId() in libHyphenateFullSDK.a(sqlite.o)

  "std::string::_Rep::_S_empty_rep_storage", referenced from:

      confice_free(tag_confice*) in libHyphenateFullSDK.a(eice.o)

      confice_new(Json_em::Value&, pj_ice_strans_cfg*, pj_pool_t*, int, int, std::string&, std::string&, std::string&, std::string&, confice_cb const*, void*, tag_confice**) in libHyphenateFullSDK.a(eice.o)

      on_data_recvfrom(pj_activesock_t*, void*, unsigned long, void const*, int, int) in libHyphenateFullSDK.a(eice.o)

      _eice_new in libHyphenateFullSDK.a(eice.o)

      _parse_remote(eice_st*, char const*, int) in libHyphenateFullSDK.a(eice.o)

      _eice_free in libHyphenateFullSDK.a(eice.o)

      _eice_get_nego_result in libHyphenateFullSDK.a(eice.o)

      ...

  "_sqlite3_column_text", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Column::GetText() const in libHyphenateFullSDK.a(sqlite.o)

      easemob::Column::operator char const*() const in libHyphenateFullSDK.a(sqlite.o)

      easemob::Column::operator std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >() const in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_column_int64", referenced from:

      easemob::Column::GetInt64() const in libHyphenateFullSDK.a(sqlite.o)

      easemob::Column::operator long long() const in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_bind_int64", referenced from:

      easemob::EMAttributeValue::bind(void*, int) in libHyphenateFullSDK.a(emattributevalue.o)

      easemob::Statement::Bind(int, long long) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_prepare_v2", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Connection::MakeStmt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<easemob::EMAttributeValue, std::__1::allocator<easemob::EMAttributeValue> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_initialize", referenced from:

      easemob::Connection::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_bind_int", referenced from:

      easemob::EMAttributeValue::bind(void*, int) in libHyphenateFullSDK.a(emattributevalue.o)

      easemob::Statement::Bind(int, int) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_exec", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

  "_sqlite3_finalize", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Statement::~Statement() in libHyphenateFullSDK.a(sqlite.o)

      easemob::Connection::MakeStmt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<easemob::EMAttributeValue, std::__1::allocator<easemob::EMAttributeValue> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_bind_text", referenced from:

      easemob::EMAttributeValue::bind(void*, int) in libHyphenateFullSDK.a(emattributevalue.o)

      easemob::Statement::Bind(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_bind_null", referenced from:

      easemob::EMAttributeValue::bind(void*, int) in libHyphenateFullSDK.a(emattributevalue.o)

      easemob::Statement::BindNull(int) in libHyphenateFullSDK.a(sqlite.o)

  "std::_List_node_base::transfer(std::_List_node_base*, std::_List_node_base*)", referenced from:

      webrtc::AudioConferenceMixerImpl::GetAdditionalAudio(std::list<webrtc::AudioFrame*, std::allocator<webrtc::AudioFrame*> >*) in libHyphenateFullSDK.a(audio_conference_mixer_impl.o)

      void std::list<webrtc::DtmfEvent, std::allocator<webrtc::DtmfEvent> >::sort<bool (*)(webrtc::DtmfEvent const&, webrtc::DtmfEvent const&)>(bool (*)(webrtc::DtmfEvent const&, webrtc::DtmfEvent const&)) in libHyphenateFullSDK.a(dtmf_buffer.o)

      webrtc::PayloadSplitter::SplitRed(std::list<webrtc::Packet*, std::allocator<webrtc::Packet*> >*) in libHyphenateFullSDK.a(payload_splitter.o)

      webrtc::PayloadSplitter::SplitAudio(std::list<webrtc::Packet*, std::allocator<webrtc::Packet*> >*, webrtc::DecoderDatabase const&) in libHyphenateFullSDK.a(payload_splitter.o)

  "_sqlite3_step", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Statement::Step() in libHyphenateFullSDK.a(sqlite.o)

      easemob::Connection::StepSql(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<easemob::EMAttributeValue, std::__1::allocator<easemob::EMAttributeValue> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "std::ostream& std::ostream::_M_insert<unsigned long>(unsigned long)", referenced from:

      webrtc::ModuleRtpRtcpImpl::SetMaxTransferUnit(unsigned short) in libHyphenateFullSDK.a(rtp_rtcp_impl.o)

      webrtc::NACKStringBuilder::PushNACK(unsigned short) in libHyphenateFullSDK.a(rtcp_sender.o)

      webrtc::RTCPSender::BuildNACK(unsigned char*, int&, int, unsigned short const*, std::string*) in libHyphenateFullSDK.a(rtcp_sender.o)

      webrtc::RTCPReceiver::ResetRTT(unsigned int) in libHyphenateFullSDK.a(rtcp_receiver.o)

      webrtc::RTCPReceiver::HandleReportBlock(webrtc::RTCPUtility::RTCPPacket const&, webrtc::RTCPHelp::RTCPPacketInformation&, unsigned int, unsigned char) in libHyphenateFullSDK.a(rtcp_receiver.o)

      webrtc::SendSideBandwidthEstimation::CapBitrateToThresholds() in libHyphenateFullSDK.a(send_side_bandwidth_estimation.o)

      webrtc::RTPSender::SetMaxPayloadLength(unsigned short, unsigned short) in libHyphenateFullSDK.a(rtp_sender.o)

      ...

  "_sqlite3_bind_double", referenced from:

      easemob::EMAttributeValue::bind(void*, int) in libHyphenateFullSDK.a(emattributevalue.o)

  "_sqlite3_column_double", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

  "_sqlite3_column_int", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Column::GetInt() const in libHyphenateFullSDK.a(sqlite.o)

      easemob::Column::operator int() const in libHyphenateFullSDK.a(sqlite.o)

  "_uncompress", referenced from:

      easemob::protocol::CompressionZlib::decompress(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libHyphenateFullSDK.a(emcompressionzlib.o)

      _id3v2_read_internal in libHyphenateFullSDK.a(id3v2.o)

      _mov_read_cmov in libHyphenateFullSDK.a(mov.o)

  "_sqlite3_column_count", referenced from:

      easemob::Statement::columnIndexMap() in libHyphenateFullSDK.a(sqlite.o)

  "_zlibCompileFlags", referenced from:

      _http_read_header in libHyphenateFullSDK.a(http.o)

  "_sqlite3_close", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Connection::~Connection() in libHyphenateFullSDK.a(sqlite.o)

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

Showing first 200 notices only


经过查找是没有找到C++的依赖库

解决方法:导入系统框架libstdc++.6.0.9.tbd


之后再次编译,错误如下:

Undefined symbols for architecture arm64:

  "_inflate", referenced from:

      _http_read_stream in libHyphenateFullSDK.a(http.o)

  "_zlibCompileFlags", referenced from:

      _http_read_header in libHyphenateFullSDK.a(http.o)

  "_inflateEnd", referenced from:

      _http_close in libHyphenateFullSDK.a(http.o)

      _http_read_header in libHyphenateFullSDK.a(http.o)

  "_uncompress", referenced from:

      easemob::protocol::CompressionZlib::decompress(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libHyphenateFullSDK.a(emcompressionzlib.o)

      _id3v2_read_internal in libHyphenateFullSDK.a(id3v2.o)

      _mov_read_cmov in libHyphenateFullSDK.a(mov.o)

  "_iconv", referenced from:

      _em_avcodec_decode_subtitle2 in libHyphenateFullSDK.a(utils.o)

  "_iconv_open", referenced from:

      _em_avcodec_open2 in libHyphenateFullSDK.a(utils.o)

      _em_avcodec_decode_subtitle2 in libHyphenateFullSDK.a(utils.o)

  "_iconv_close", referenced from:

      _em_avcodec_open2 in libHyphenateFullSDK.a(utils.o)

      _em_avcodec_decode_subtitle2 in libHyphenateFullSDK.a(utils.o)

  "_gzwrite", referenced from:

      easemob::EMFileCompressor::addFileToGZ(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(emfilecompressor.o)

      easemob::EMFileCompressor::write(void const*, unsigned long) in libHyphenateFullSDK.a(emfilecompressor.o)

  "_gzclose", referenced from:

      easemob::EMFileCompressor::~EMFileCompressor() in libHyphenateFullSDK.a(emfilecompressor.o)

      easemob::EMFileCompressor::closeGZFile() in libHyphenateFullSDK.a(emfilecompressor.o)

  "_sqlite3_open_v2", referenced from:

      easemob::Connection::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_errmsg", referenced from:

      easemob::Statement::Bind(int, int) in libHyphenateFullSDK.a(sqlite.o)

      easemob::Statement::Bind(int, long long) in libHyphenateFullSDK.a(sqlite.o)

      easemob::Statement::Bind(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(sqlite.o)

      easemob::Statement::BindNull(int) in libHyphenateFullSDK.a(sqlite.o)

      easemob::Connection::MakeStmt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<easemob::EMAttributeValue, std::__1::allocator<easemob::EMAttributeValue> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_compress", referenced from:

      easemob::protocol::CompressionZlib::compress(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libHyphenateFullSDK.a(emcompressionzlib.o)

     (maybe you meant: _lame_get_compression_ratio, _lame_set_compression_ratio , __ZN6webrtc15GainControlImpl23set_compression_gain_dbEi , _OBJC_IVAR_$_EMImageMessageBody._compressionRatio )

  "_sqlite3_open", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

  "_sqlite3_last_insert_rowid", referenced from:

      easemob::Connection::GetLastInsertId() in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_column_int64", referenced from:

      easemob::Column::GetInt64() const in libHyphenateFullSDK.a(sqlite.o)

      easemob::Column::operator long long() const in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_bind_int64", referenced from:

      easemob::EMAttributeValue::bind(void*, int) in libHyphenateFullSDK.a(emattributevalue.o)

      easemob::Statement::Bind(int, long long) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_prepare_v2", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Connection::MakeStmt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<easemob::EMAttributeValue, std::__1::allocator<easemob::EMAttributeValue> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_initialize", referenced from:

      easemob::Connection::open(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_bind_int", referenced from:

      easemob::EMAttributeValue::bind(void*, int) in libHyphenateFullSDK.a(emattributevalue.o)

      easemob::Statement::Bind(int, int) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_column_name", referenced from:

      easemob::Statement::columnIndexMap() in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_finalize", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Statement::~Statement() in libHyphenateFullSDK.a(sqlite.o)

      easemob::Connection::MakeStmt(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<easemob::EMAttributeValue, std::__1::allocator<easemob::EMAttributeValue> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_column_text", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Column::GetText() const in libHyphenateFullSDK.a(sqlite.o)

      easemob::Column::operator char const*() const in libHyphenateFullSDK.a(sqlite.o)

      easemob::Column::operator std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >() const in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_bind_text", referenced from:

      easemob::EMAttributeValue::bind(void*, int) in libHyphenateFullSDK.a(emattributevalue.o)

      easemob::Statement::Bind(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_bind_null", referenced from:

      easemob::EMAttributeValue::bind(void*, int) in libHyphenateFullSDK.a(emattributevalue.o)

      easemob::Statement::BindNull(int) in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_exec", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

  "_sqlite3_step", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Statement::Step() in libHyphenateFullSDK.a(sqlite.o)

      easemob::Connection::StepSql(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<easemob::EMAttributeValue, std::__1::allocator<easemob::EMAttributeValue> > const&) in libHyphenateFullSDK.a(sqlite.o)

  "_gzopen", referenced from:

      easemob::EMFileCompressor::createGZFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libHyphenateFullSDK.a(emfilecompressor.o)

  "_sqlite3_bind_double", referenced from:

      easemob::EMAttributeValue::bind(void*, int) in libHyphenateFullSDK.a(emattributevalue.o)

  "_sqlite3_column_double", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

  "_inflateInit2_", referenced from:

      _http_read_header in libHyphenateFullSDK.a(http.o)

  "_sqlite3_column_int", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Column::GetInt() const in libHyphenateFullSDK.a(sqlite.o)

      easemob::Column::operator int() const in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_column_count", referenced from:

      easemob::Statement::columnIndexMap() in libHyphenateFullSDK.a(sqlite.o)

  "_sqlite3_close", referenced from:

      -[EMClient migrateDatabaseToLatestSDK] in libHyphenateFullSDK.a(EMClient.o)

      easemob::Connection::~Connection() in libHyphenateFullSDK.a(sqlite.o)

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)


解决方法:导入系统框架 libz.1.2.8.tbd 和 libsqlite3.tbd 


再次编译,错误如下:

Undefined symbols for architecture arm64:

  "_iconv", referenced from:

      _em_avcodec_decode_subtitle2 in libHyphenateFullSDK.a(utils.o)

  "_iconv_open", referenced from:

      _em_avcodec_open2 in libHyphenateFullSDK.a(utils.o)

      _em_avcodec_decode_subtitle2 in libHyphenateFullSDK.a(utils.o)

  "_iconv_close", referenced from:

      _em_avcodec_open2 in libHyphenateFullSDK.a(utils.o)

      _em_avcodec_decode_subtitle2 in libHyphenateFullSDK.a(utils.o)

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)


解决方法:导入系统框架 libiconv.tbd


大功告成了!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值