iOS 无法解析 报错std::basic_string/std::string::find

本文详细介绍了在iOS项目中遇到的编译错误问题,涉及未定义符号和架构i386相关的问题。通过分析错误信息,提供了解决方案并指导开发者如何调整代码和配置以避免类似错误。

S 无法解析 报错std::basic_string/std::string::find,有需要的朋友可以参考下。


iOS 编译报错:

Undefined symbols for architecture i386:

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

TagLib::String::find(TagLib::String const&, int) const in MobileVLCKit(tstring.cpp.o)

TagLib::String::split(TagLib::String const&) const in MobileVLCKit(tstring.cpp.o)

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

TagLib::String::rfind(TagLib::String const&, int) const in MobileVLCKit(tstring.cpp.o)

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

dash::xml::DOMParser::isDash(stream_t*) in MobileVLCKit(libdash_plugin_la-DOMParser.o)

dash::xml::DOMParser::getProfile() in MobileVLCKit(libdash_plugin_la-DOMParser.o)

dash::mpd::BasicCMParser::parseCommonAttributesElements(dash::xml::Node*, dash::mpd::CommonAttributesElements*, dash::mpd::CommonAttributesElements*) const in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseSegment(dash::xml::Node*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::IsoffMainParser::setInitSegment(dash::xml::Node*, dash::mpd::SegmentBase*) in MobileVLCKit(libdash_plugin_la-IsoffMainParser.o)

dash::mpd::IsoffMainParser::setSegments(dash::xml::Node*, dash::mpd::SegmentList*) in MobileVLCKit(libdash_plugin_la-IsoffMainParser.o)

dash::mpd::SegmentTemplate::setSourceUrl(std::string const&) in MobileVLCKit(libdash_plugin_la-SegmentTemplate.o)

...

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

dash::mpd::BasicCMParser::resolveUrlTemplates(std::string&, bool&) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

dash::mpd::BasicCMParser::BasicCMParser(dash::xml::Node*, stream_t*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::Helper::getDirectoryPath(std::string const&) in MobileVLCKit(libdash_plugin_la-Helper.o)

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

demux_sys_t::AnalyseAllSegmentsFound(demux_t*, libebml::EbmlStream*, bool) in MobileVLCKit(libmkv_plugin_la-demux.o)

virtual_chapter_c::PublishChapters(input_title_t&, int&, int) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

chapter_item_c::GetCodecName(bool) const in MobileVLCKit(libmkv_plugin_la-chapters.o)

dash::mpd::BasicCMParser::setMPD() in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::setAdaptationSet(dash::xml::Node*, dash::mpd::Period*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseSegment(dash::xml::Node*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

...

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

dash::http::Chunk::setUrl(std::string const&) in MobileVLCKit(libdash_plugin_la-Chunk.o)

"std::string::compare(unsigned long, unsigned long, std::string const&) const", referenced from:

matroska_script_interpretor_c::Interpret(unsigned char const*, unsigned long) in MobileVLCKit(libmkv_plugin_la-chapter_command.o)

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

dash::mpd::BasicCMParser::resolveUrlTemplates(std::string&, bool&) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::SegmentTemplate::getSourceUrl() const in MobileVLCKit(libdash_plugin_la-SegmentTemplate.o)

dash::mpd::Segment::toChunk() in MobileVLCKit(libdash_plugin_la-Segment.o)

dash::http::PersistentConnection::prepareRequest(dash::http::Chunk*) in MobileVLCKit(libdash_plugin_la-PersistentConnection.o)

libebml::IOCallback::writeFully(void const*, unsigned long) in MobileVLCKit(IOCallback.o)

libebml::IOCallback::readFully(void*, unsigned long) in MobileVLCKit(IOCallback.o)

libebml::MemIOCallback::MemIOCallback(unsigned long long) in MobileVLCKit(MemIOCallback.o)

...

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

dash::mpd::BasicCMParser::setMPD() in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseSegmentTimeline(dash::xml::Node*, dash::mpd::SegmentInfoCommon*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::setInitSegment(dash::xml::Node*, dash::mpd::SegmentInfoCommon*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseCommonAttributesElements(dash::xml::Node*, dash::mpd::CommonAttributesElements*, dash::mpd::CommonAttributesElements*) const in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::setRepresentations(dash::xml::Node*, dash::mpd::AdaptationSet*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseTrickMode(dash::xml::Node*, dash::mpd::Representation*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::setSegmentInfo(dash::xml::Node*, dash::mpd::Representation*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

...

"std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_leak_hard()", referenced from:

TagLib::String::String(std::string const&, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::copyFromLatin1(char const*, unsigned long) in MobileVLCKit(tstring.cpp.o)

TagLib::String::copyFromUTF8(char const*, unsigned long) in MobileVLCKit(tstring.cpp.o)

TagLib::String::copyFromUTF16(wchar_t const*, unsigned long, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::String(char const*, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::String(TagLib::ByteVector const&, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::copyFromUTF16(char const*, unsigned long, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

...

"std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_M_destroy(std::allocator<wchar_t> const&)", referenced from:

TagLib::String::substr(unsigned int, unsigned int) const in MobileVLCKit(tstring.cpp.o)

TagLib::String::stripWhiteSpace() const in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator=(wchar_t const*) in MobileVLCKit(tstring.cpp.o)

wchar_t* std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_S_construct<__gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >(__gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, std::allocator<wchar_t> const&, std::forward_iterator_tag) in MobileVLCKit(tstring.cpp.o)

TagLib::String::StringPrivate::~StringPrivate() in MobileVLCKit(tstring.cpp.o)

TagLib::String::StringPrivate::~StringPrivate() in MobileVLCKit(tstring.cpp.o)

"std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_terminal", referenced from:

TagLib::String::upper() const in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator+=(char const*) in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator+=(wchar_t) in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator+=(char) in MobileVLCKit(tstring.cpp.o)

wchar_t* std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_S_construct<__gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >(__gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, std::allocator<wchar_t> const&, std::forward_iterator_tag) in MobileVLCKit(tstring.cpp.o)

"std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_empty_rep_storage", referenced from:

TagLib::String::String() in MobileVLCKit(tstring.cpp.o)

TagLib::String::String() in MobileVLCKit(tstring.cpp.o)

TagLib::String::String(std::string const&, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::String(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::String(wchar_t const*, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::String(char const*, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::String(wchar_t, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

...

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

wchar_t* std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_S_construct<__gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > >(__gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, std::allocator<wchar_t> const&, std::forward_iterator_tag) in MobileVLCKit(tstring.cpp.o)

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

TagLib::String::operator+=(wchar_t const*) in MobileVLCKit(tstring.cpp.o)

"std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::append(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)", referenced from:

TagLib::String::append(TagLib::String const&) in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator+=(TagLib::String const&) in MobileVLCKit(tstring.cpp.o)

operator+(TagLib::String const&, TagLib::String const&) in MobileVLCKit(tstring.cpp.o)

operator+(char const*, TagLib::String const&) in MobileVLCKit(tstring.cpp.o)

operator+(TagLib::String const&, char const*) in MobileVLCKit(tstring.cpp.o)

"std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::resize(unsigned long, wchar_t)", referenced from:

TagLib::String::String(std::string const&, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::copyFromLatin1(char const*, unsigned long) in MobileVLCKit(tstring.cpp.o)

TagLib::String::copyFromUTF8(char const*, unsigned long) in MobileVLCKit(tstring.cpp.o)

TagLib::String::copyFromUTF16(wchar_t const*, unsigned long, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::String(char const*, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::String(TagLib::ByteVector const&, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::copyFromUTF16(char const*, unsigned long, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

...

"std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::reserve(unsigned long)", referenced from:

TagLib::String::upper() const in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator+=(char const*) in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator+=(wchar_t) in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator+=(char) in MobileVLCKit(tstring.cpp.o)

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

TagLib::String::operator=(wchar_t const*) in MobileVLCKit(tstring.cpp.o)

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

TagLib::String::toWString() const in MobileVLCKit(tstring.cpp.o)

TagLib::String::detach() in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator=(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator=(wchar_t const*) in MobileVLCKit(tstring.cpp.o)

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

TagLib::String::substr(unsigned int, unsigned int) const in MobileVLCKit(tstring.cpp.o)

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

TagLib::String::String(char, TagLib::String::Type) in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator=(char) in MobileVLCKit(tstring.cpp.o)

TagLib::String::operator=(wchar_t) in MobileVLCKit(tstring.cpp.o)

"std::istream::operator>>(int&)", referenced from:

dash::mpd::BasicCMParser::parseCommonAttributesElements(dash::xml::Node*, dash::mpd::CommonAttributesElements*, dash::mpd::CommonAttributesElements*) const in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

"std::ostream::put(char)", referenced from:

dash::mpd::BasicCMParser::setMPD() in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseSegmentTimeline(dash::xml::Node*, dash::mpd::SegmentInfoCommon*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::setInitSegment(dash::xml::Node*, dash::mpd::SegmentInfoCommon*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseCommonAttributesElements(dash::xml::Node*, dash::mpd::CommonAttributesElements*, dash::mpd::CommonAttributesElements*) const in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::setRepresentations(dash::xml::Node*, dash::mpd::AdaptationSet*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseTrickMode(dash::xml::Node*, dash::mpd::Representation*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::setSegmentInfo(dash::xml::Node*, dash::mpd::Representation*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

...

"std::ostream::flush()", referenced from:

dash::mpd::BasicCMParser::setMPD() in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseSegmentTimeline(dash::xml::Node*, dash::mpd::SegmentInfoCommon*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::setInitSegment(dash::xml::Node*, dash::mpd::SegmentInfoCommon*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseCommonAttributesElements(dash::xml::Node*, dash::mpd::CommonAttributesElements*, dash::mpd::CommonAttributesElements*) const in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::setRepresentations(dash::xml::Node*, dash::mpd::AdaptationSet*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::parseTrickMode(dash::xml::Node*, dash::mpd::Representation*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::setSegmentInfo(dash::xml::Node*, dash::mpd::Representation*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

...

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

libebml::IOCallback::writeFully(void const*, unsigned long) in MobileVLCKit(IOCallback.o)

libebml::IOCallback::readFully(void*, unsigned long) in MobileVLCKit(IOCallback.o)

libebml::StdIOCallback::setFilePointer(long long, libebml::seek_mode) in MobileVLCKit(StdIOCallback.o)

libebml::StdIOCallback::close() in MobileVLCKit(StdIOCallback.o)

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

libebml::IOCallback::writeFully(void const*, unsigned long) in MobileVLCKit(IOCallback.o)

libebml::IOCallback::readFully(void*, unsigned long) in MobileVLCKit(IOCallback.o)

libebml::StdIOCallback::setFilePointer(long long, libebml::seek_mode) in MobileVLCKit(StdIOCallback.o)

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

dash::mpd::SegmentTemplate::getSourceUrl() const in MobileVLCKit(libdash_plugin_la-SegmentTemplate.o)

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

dash::mpd::BasicCMParser::resolveUrlTemplates(std::string&, bool&) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

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

dash::http::PersistentConnection::prepareRequest(dash::http::Chunk*) in MobileVLCKit(libdash_plugin_la-PersistentConnection.o)

libebml::StdIOCallback::setFilePointer(long long, libebml::seek_mode) in MobileVLCKit(StdIOCallback.o)

dash::http::HTTPConnection::prepareRequest(dash::http::Chunk*) in MobileVLCKit(libdash_plugin_la-HTTPConnection.o)

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

TagLib::String::to8Bit(bool) const in MobileVLCKit(tstring.cpp.o)

matroska_script_interpretor_c::Interpret(unsigned char const*, unsigned long) in MobileVLCKit(libmkv_plugin_la-chapter_command.o)

TagLib::debugData(TagLib::ByteVector const&) in MobileVLCKit(tdebug.cpp.o)

libebml::UTFstring::UpdateFromUTF8() in MobileVLCKit(EbmlUnicodeString.o)

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

TagLib::debugData(TagLib::ByteVector const&) in MobileVLCKit(tdebug.cpp.o)

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

demux_sys_t::~demux_sys_t() in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::AnalyseAllSegmentsFound(demux_t*, libebml::EbmlStream*, bool) in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::PreloadLinked() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

virtual_segment_c::virtual_segment_c(std::vector<matroska_segment_c*, std::allocator<matroska_segment_c*> >*) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

...

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

matroska_segment_c::ParseChapterAtom(int, libmatroska::KaxChapterAtom*, chapter_item_c&) in MobileVLCKit(libmkv_plugin_la-matroska_segment_parse.o)

dash::mpd::BasicCMParser::BasicCMParser(dash::xml::Node*, stream_t*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

matroska_segment_c::ParseChapterAtom(int, libmatroska::KaxChapterAtom*, chapter_item_c&) in MobileVLCKit(libmkv_plugin_la-matroska_segment_parse.o)

dash::mpd::BasicCMParser::BasicCMParser(dash::xml::Node*, stream_t*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

demux_sys_t::~demux_sys_t() in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::AnalyseAllSegmentsFound(demux_t*, libebml::EbmlStream*, bool) in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::PreloadLinked() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

virtual_segment_c::virtual_segment_c(std::vector<matroska_segment_c*, std::allocator<matroska_segment_c*> >*) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

...

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

demux_sys_t::~demux_sys_t() in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::AnalyseAllSegmentsFound(demux_t*, libebml::EbmlStream*, bool) in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::PreloadLinked() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

virtual_segment_c::virtual_segment_c(std::vector<matroska_segment_c*, std::allocator<matroska_segment_c*> >*) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

...

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

demux_sys_t::~demux_sys_t() in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::AnalyseAllSegmentsFound(demux_t*, libebml::EbmlStream*, bool) in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::PreloadLinked() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

virtual_segment_c::virtual_segment_c(std::vector<matroska_segment_c*, std::allocator<matroska_segment_c*> >*) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

...

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

demux_sys_t::~demux_sys_t() in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::AnalyseAllSegmentsFound(demux_t*, libebml::EbmlStream*, bool) in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::PreloadLinked() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

virtual_segment_c::virtual_segment_c(std::vector<matroska_segment_c*, std::allocator<matroska_segment_c*> >*) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

...

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

demux_sys_t::~demux_sys_t() in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::AnalyseAllSegmentsFound(demux_t*, libebml::EbmlStream*, bool) in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::PreloadLinked() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

virtual_segment_c::virtual_segment_c(std::vector<matroska_segment_c*, std::allocator<matroska_segment_c*> >*) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

...

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

demux_sys_t::~demux_sys_t() in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::AnalyseAllSegmentsFound(demux_t*, libebml::EbmlStream*, bool) in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::PreloadLinked() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

virtual_segment_c::virtual_segment_c(std::vector<matroska_segment_c*, std::allocator<matroska_segment_c*> >*) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

...

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

demux_sys_t::~demux_sys_t() in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::AnalyseAllSegmentsFound(demux_t*, libebml::EbmlStream*, bool) in MobileVLCKit(libmkv_plugin_la-demux.o)

demux_sys_t::PreloadLinked() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

libebml::EDocType::~EDocType() in MobileVLCKit(libmkv_plugin_la-demux.o)

virtual_segment_c::virtual_segment_c(std::vector<matroska_segment_c*, std::allocator<matroska_segment_c*> >*) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

...

...

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

matroska_segment_c::ParseChapterAtom(int, libmatroska::KaxChapterAtom*, chapter_item_c&) in MobileVLCKit(libmkv_plugin_la-matroska_segment_parse.o)

dvd_chapter_codec_c::GetCodecName(bool) const in MobileVLCKit(libmkv_plugin_la-chapter_command.o)

dvd_command_interpretor_c::GetRegTypeName(bool, unsigned short) const in MobileVLCKit(libmkv_plugin_la-chapter_command.o)

dash::mpd::BasicCMParser::BasicCMParser(dash::xml::Node*, stream_t*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

libebml::EbmlMaster::FindAllMissingElements() in MobileVLCKit(EbmlMaster.o)

dash::http::PersistentConnection::prepareRequest(dash::http::Chunk*) in MobileVLCKit(libdash_plugin_la-PersistentConnection.o)

...

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

dash::mpd::BasicCMParser::parseSegment(dash::xml::Node*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::http::PersistentConnection::prepareRequest(dash::http::Chunk*) in MobileVLCKit(libdash_plugin_la-PersistentConnection.o)

dash::http::HTTPConnection::prepareRequest(dash::http::Chunk*) in MobileVLCKit(libdash_plugin_la-HTTPConnection.o)

dash::Helper::combinePaths(std::string const&, std::string const&) in MobileVLCKit(libdash_plugin_la-Helper.o)

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

dash::mpd::BasicCMParser::BasicCMParser(dash::xml::Node*, stream_t*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

dvd_chapter_codec_c::GetCodecName(bool) const in MobileVLCKit(libmkv_plugin_la-chapter_command.o)

dvd_command_interpretor_c::GetRegTypeName(bool, unsigned short) const in MobileVLCKit(libmkv_plugin_la-chapter_command.o)

dash::mpd::BasicCMParser::BasicCMParser(dash::xml::Node*, stream_t*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

libebml::EbmlMaster::FindAllMissingElements() in MobileVLCKit(EbmlMaster.o)

libebml::EbmlString::ReadData(libebml::IOCallback&, libebml::ScopeMode) in MobileVLCKit(EbmlString.o)

libebml::UTFstring::UpdateFromUCS2() in MobileVLCKit(EbmlUnicodeString.o)

...

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

virtual_chapter_c::PublishChapters(input_title_t&, int&, int) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

dash::xml::DOMParser::getProfile() in MobileVLCKit(libdash_plugin_la-DOMParser.o)

TagLib::String::toCString(bool) const in MobileVLCKit(tstring.cpp.o)

dash::mpd::Representation::setId(std::string const&) in MobileVLCKit(libdash_plugin_la-Representation.o)

chapter_item_c::GetCodecName(bool) const in MobileVLCKit(libmkv_plugin_la-chapters.o)

dash::mpd::BasicCMParser::parseSegment(dash::xml::Node*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

...

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

TagLib::String::to8Bit(bool) const in MobileVLCKit(tstring.cpp.o)

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

dash::mpd::BasicCMParser::resolveUrlTemplates(std::string&, bool&) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::SegmentTemplate::getSourceUrl() const in MobileVLCKit(libdash_plugin_la-SegmentTemplate.o)

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

matroska_segment_c::ParseChapterAtom(int, libmatroska::KaxChapterAtom*, chapter_item_c&) in MobileVLCKit(libmkv_plugin_la-matroska_segment_parse.o)

dash::mpd::BasicCMParser::BasicCMParser(dash::xml::Node*, stream_t*) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::http::PersistentConnection::prepareRequest(dash::http::Chunk*) in MobileVLCKit(libdash_plugin_la-PersistentConnection.o)

dash::http::HTTPConnection::prepareRequest(dash::http::Chunk*) in MobileVLCKit(libdash_plugin_la-HTTPConnection.o)

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

virtual_segment_c::virtual_segment_c(std::vector<matroska_segment_c*, std::allocator<matroska_segment_c*> >*) in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

virtual_edition_c::GetMainName() in MobileVLCKit(libmkv_plugin_la-virtual_segment.o)

dash::xml::DOMParser::processNode() in MobileVLCKit(libdash_plugin_la-DOMParser.o)

dash::xml::DOMParser::addAttributesToNode(dash::xml::Node*) in MobileVLCKit(libdash_plugin_la-DOMParser.o)

dash::xml::DOMParser::getProfile() in MobileVLCKit(libdash_plugin_la-DOMParser.o)

libmatroska::KaxTrackLanguage::KaxTrackLanguage() in MobileVLCKit(KaxSemantic.o)

...

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

dash::xml::DOMParser::isDash(stream_t*) in MobileVLCKit(libdash_plugin_la-DOMParser.o)

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

demux_sys_t::AnalyseAllSegmentsFound(demux_t*, libebml::EbmlStream*, bool) in MobileVLCKit(libmkv_plugin_la-demux.o)

matroska_segment_c::ParseSimpleTags(libmatroska::KaxTagSimple*, int) in MobileVLCKit(libmkv_plugin_la-matroska_segment.o)

dash::xml::DOMParser::getProfile() in MobileVLCKit(libdash_plugin_la-DOMParser.o)

matroska_segment_c::ParseTrackEntry(libmatroska::KaxTrackEntry*) in MobileVLCKit(libmkv_plugin_la-matroska_segment_parse.o)

matroska_segment_c::ParseChapterAtom(int, libmatroska::KaxChapterAtom*, chapter_item_c&) in MobileVLCKit(libmkv_plugin_la-matroska_segment_parse.o)

matroska_segment_c::ParseAttachments(libmatroska::KaxAttachments*) in MobileVLCKit(libmkv_plugin_la-matroska_segment_parse.o)

...

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

Open(vlc_object_t*) in MobileVLCKit(libmkv_plugin_la-mkv.o)

matroska_script_interpretor_c::Interpret(unsigned char const*, unsigned long) in MobileVLCKit(libmkv_plugin_la-chapter_command.o)

dash::mpd::BasicCMParser::resolveUrlTemplates(std::string&, bool&) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::IsoffMainParser::setInitSegment(dash::xml::Node*, dash::mpd::SegmentBase*) in MobileVLCKit(libdash_plugin_la-IsoffMainParser.o)

dash::mpd::IsoffMainParser::setSegments(dash::xml::Node*, dash::mpd::SegmentList*) in MobileVLCKit(libdash_plugin_la-IsoffMainParser.o)

dash::http::HTTPConnection::sendData(std::string const&) in MobileVLCKit(libdash_plugin_la-HTTPConnection.o)

dash::http::HTTPConnection::parseHeader() in MobileVLCKit(libdash_plugin_la-HTTPConnection.o)

...

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

TagLib::FileStream::FileStream(char const*, bool) in MobileVLCKit(tfilestream.cpp.o)

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

__GLOBAL__I_a in MobileVLCKit(libmkv_plugin_la-chapter_command.o)

__GLOBAL__I_a in MobileVLCKit(libdash_plugin_la-Node.o)

__GLOBAL__I_a in MobileVLCKit(libmkv_plugin_la-chapter_command.o)

__GLOBAL__I_a in MobileVLCKit(libdash_plugin_la-Node.o)

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

libebml::IOCallback::writeFully(void const*, unsigned long) in MobileVLCKit(IOCallback.o)

libebml::IOCallback::readFully(void*, unsigned long) in MobileVLCKit(IOCallback.o)

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

libebml::CRTError::CRTError(int, std::string const&) in MobileVLCKit(StdIOCallback.o)

libebml::CRTError::CRTError(std::string const&, int) in MobileVLCKit(StdIOCallback.o)

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

TagLib::List<TagLib::ID3v2::Frame*>::detach() in MobileVLCKit(libtaglib_plugin_la-taglib.o)

std::list<TagLib::String, std::allocator<TagLib::String> >::_M_insert(std::_List_iterator<TagLib::String>, TagLib::String const&) in MobileVLCKit(libtaglib_plugin_la-taglib.o)

std::list<TagLib::ASF::Attribute, std::allocator<TagLib::ASF::Attribute> >::_M_insert(std::_List_iterator<TagLib::ASF::Attribute>, TagLib::ASF::Attribute const&) in MobileVLCKit(libtaglib_plugin_la-taglib.o)

std::list<TagLib::String, std::allocator<TagLib::String> >::_M_insert(std::_List_iterator<TagLib::String>, TagLib::String const&) in MobileVLCKit(tstringlist.cpp.o)

std::list<TagLib::String, std::allocator<TagLib::String> >::_M_insert(std::_List_iterator<TagLib::String>, TagLib::String const&) in MobileVLCKit(apetag.cpp.o)

std::list<TagLib::String, std::allocator<TagLib::String> >::_M_insert(std::_List_iterator<TagLib::String>, TagLib::String const&) in MobileVLCKit(apeitem.cpp.o)

std::list<TagLib::ASF::Attribute, std::allocator<TagLib::ASF::Attribute> >::_M_insert(std::_List_iterator<TagLib::ASF::Attribute>, TagLib::ASF::Attribute const&) in MobileVLCKit(asftag.cpp.o)

...

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

TagLib::Ogg::XiphComment::removeField(TagLib::String const&, TagLib::String const&) in MobileVLCKit(xiphcomment.cpp.o)

TagLib::FLAC::File::removePicture(TagLib::FLAC::Picture*, bool) in MobileVLCKit(flacfile.cpp.o)

TagLib::ID3v2::Tag::removeFrame(TagLib::ID3v2::Frame*, bool) in MobileVLCKit(id3v2tag.cpp.o)

TagLib::Tag::setProperties(TagLib::PropertyMap const&) in MobileVLCKit(tag.cpp.o)

TagLib::Mod::Tag::setProperties(TagLib::PropertyMap const&) in MobileVLCKit(modtag.cpp.o)

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

void std::list<TagLib::String, std::allocator<TagLib::String> >::insert<std::_List_const_iterator<TagLib::String> >(std::_List_iterator<TagLib::String>, std::_List_const_iterator<TagLib::String>, std::_List_const_iterator<TagLib::String>) in MobileVLCKit(tstringlist.cpp.o)

void std::list<TagLib::MP4::Atom*, std::allocator<TagLib::MP4::Atom*> >::insert<std::_List_const_iterator<TagLib::MP4::Atom*> >(std::_List_iterator<TagLib::MP4::Atom*>, std::_List_const_iterator<TagLib::MP4::Atom*>, std::_List_const_iterator<TagLib::MP4::Atom*>) in MobileVLCKit(mp4atom.cpp.o)

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

dash::mpd::Segment::toChunk() in MobileVLCKit(libdash_plugin_la-Segment.o)

dash::http::PersistentConnection::prepareRequest(dash::http::Chunk*) in MobileVLCKit(libdash_plugin_la-PersistentConnection.o)

libebml::IOCallback::writeFully(void const*, unsigned long) in MobileVLCKit(IOCallback.o)

libebml::IOCallback::readFully(void*, unsigned long) in MobileVLCKit(IOCallback.o)

libebml::MemIOCallback::MemIOCallback(unsigned long long) in MobileVLCKit(MemIOCallback.o)

libebml::StdIOCallback::StdIOCallback(char const*, open_mode) in MobileVLCKit(StdIOCallback.o)

libebml::StdIOCallback::close() in MobileVLCKit(StdIOCallback.o)

...

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

dash::mpd::BasicCMParser::parseCommonAttributesElements(dash::xml::Node*, dash::mpd::CommonAttributesElements*, dash::mpd::CommonAttributesElements*) const in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::handleDependencyId(dash::mpd::Representation*, dash::mpd::AdaptationSet const*, std::string const&) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

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

dash::mpd::BasicCMParser::resolveUrlTemplates(std::string&, bool&) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::SegmentTemplate::getSourceUrl() const in MobileVLCKit(libdash_plugin_la-SegmentTemplate.o)

libebml::StdIOCallback::setFilePointer(long long, libebml::seek_mode) in MobileVLCKit(StdIOCallback.o)

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

dash::mpd::BasicCMParser::parseCommonAttributesElements(dash::xml::Node*, dash::mpd::CommonAttributesElements*, dash::mpd::CommonAttributesElements*) const in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::handleDependencyId(dash::mpd::Representation*, dash::mpd::AdaptationSet const*, std::string const&) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::BasicCMParser::resolveUrlTemplates(std::string&, bool&) in MobileVLCKit(libdash_plugin_la-BasicCMParser.o)

dash::mpd::SegmentTemplate::getSourceUrl() const in MobileVLCKit(libdash_plugin_la-SegmentTemplate.o)

dash::mpd::Segment::toChunk() in MobileVLCKit(libdash_plugin_la-Segment.o)

dash::http::PersistentConnection::prepareRequest(dash::http::Chunk*) in MobileVLCKit(libdash_plugin_la-PersistentConnection.o)

libebml::IOCallback::writeFully(void const*, unsigned long) in MobileVLCKit(IOCallback.o)

...

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


解决办法:将libstdc++.dylib换成libstdc++.6.0.9.dylib即可

In file included from main.cpp:11: solution.cpp: In member function 'std::vector<std::__cxx11::basic_string&lt;char> > Solution::GetTop3App(const std::vector<std::tuple<std::__cxx11::basic_string&lt;char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string&lt;char, std::char_traits<char>, std::allocator<char> >, int, int> >&, const std::vector<std::__cxx11::basic_string&lt;char> >&, const std::vector<std::__cxx11::basic_string&lt;char> >&)': solution.cpp:22:75: error: no matching function for call to 'find(std::vector<std::__cxx11::basic_string&lt;char> >::const_iterator, std::vector<std::__cxx11::basic_string&lt;char> >::const_iterator, std::__tuple_element_t<1, std::tuple<std::__cxx11::basic_string&lt;char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string&lt;char, std::char_traits<char>, std::allocator<char> >, int, int> >&)' if(find(selectedUsers.begin(), selectedUsers.end(), get<1>(it)) != selectedUsers.end()) { ^ In file included from /usr/include/c++/8/bits/locale_facets.h:48, from /usr/include/c++/8/bits/basic_ios.h:37, from /usr/include/c++/8/ios:44, from main.cpp:7: /usr/include/c++/8/bits/streambuf_iterator.h:368:5: note: candidate: 'template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT> >::__type std::find(std::istreambuf_iterator<_CharT>, std::istreambuf_iterator<_CharT>, const _CharT2&)' find(istreambuf_iterator<_CharT> __first, ^~~~ /usr/include/c++/8/bits/streambuf_iterator.h:368:5: note: template argument deduction/substitution failed: In file included from main.cpp:11: solution.cpp:22:75: note: '__gnu_cxx::__normal_iterator<const std::__cxx11::basic_string&lt;char>*, std::vector<std::__cxx11::basic_string&lt;char> > >' is not derived from 'std::istreambuf_iterator<_CharT>' if(find(selectedUsers.begin(), selectedUsers.end(), get<1>(it)) != selectedUsers.end()) { ^ solution.cpp:27:97: error: a function-definition is not allowed here before '{' token bool sortCpuFirst(tuple<string, string, int, int> a, tuple<string, string, int, int> b) { ^ solution.cpp:35:97: error: a function-definition is not allowed here before '{' token bool sortMemFirst(tuple<string, string, int, int> a, tuple<string, string, int, int> b) {
最新发布
11-12
请仔细阅读和分析下面函数,进行优化后,采用C/C++11标准,完整推导并重构可编译的全部代码 特别注意: 1.保持所有原始功能不变 2.提高执行效率,降低计算复杂度 3.已经给定的结构体名字和元素不要更改,详细的中文注释 4.自动添加中文注释说明功能逻辑 5.不使用 auto,使用显式 for 循环 6.结构体采用32位定义 7.不要使用小函数,保持原始的函数定义 函数中的 HDDMXng::Chip::Chip 映射为 message Chip { optional uint32 numsites = 1; optional uint32 numrows = 2; optional uint32 numcols = 3; optional uint32 rpmgridx = 4; optional uint32 rpmgridy = 5; optional sint32 extremaxmin = 6; optional sint32 extremaxmax = 7; optional sint32 extremaymin = 8; optional sint32 extremaymax = 9; optional string chip = 10; optional string arch = 11; } 将 _BYTE chip_msg[8] 映射为 HDDMXng::Chip chip_msg; void __cdecl HDDMDevice::readchip_pb(HDDMDevice *this, HDDMChipDesc *hddmChipDesc) { HDDMChipType *v2; // eax HDDMDevice *v3; // eax int v4; // eax int v5; // esi HDDMChip *pHDDMChip; // ebp char *dword214; // esi int dword220; // ebp int v9; // edi void *v10; // esi __int16 v11; // dx __int16 v12; // dx int hddmTileVec; // edi unsigned int *v14; // esi int v15; // edx int v16; // ecx int v17; // ecx _DWORD *v18; // esi int v19; // ebp void *v20; // edi int hddmSiteVec; // edi int v22; // esi int v23; // edx int v24; // ecx int v25; // ecx _DWORD *v26; // esi int v27; // ebp void *v28; // edi _BYTE *src; // ecx size_t n; // ebp int v31; // edi unsigned int v32; // eax unsigned int v33; // edi char *v34; // edi HDDMChip **dest; // edx HDDMChip **v36; // eax _DWORD *v37; // esi void *dword210; // eax int v39; // edi int v40; // ebp HDDMChipType *pHDDMChipType; // esi _DWORD *v42; // eax int v43; // eax int v44; // edi __int16 v45; // dx int v46; // esi void *v47; // [esp+4h] [ebp-218h] const char *srca; // [esp+4h] [ebp-218h] const char *srcb; // [esp+4h] [ebp-218h] const char *srcc; // [esp+4h] [ebp-218h] const char *srcd; // [esp+4h] [ebp-218h] char *dword38; // [esp+1Ch] [ebp-200h] int dword3C; // [esp+1Ch] [ebp-200h] int dword40; // [esp+1Ch] [ebp-200h] HDDMChip **v55; // [esp+1Ch] [ebp-200h] HDDMChip **v56; // [esp+1Ch] [ebp-200h] unsigned int i; // [esp+20h] [ebp-1FCh] unsigned int j; // [esp+20h] [ebp-1FCh] int v59; // [esp+24h] [ebp-1F8h] int v60; // [esp+24h] [ebp-1F8h] HDDMChip *hddmChip; // [esp+28h] [ebp-1F4h] bool v62; // [esp+2Fh] [ebp-1EDh] int v63; // [esp+34h] [ebp-1E8h] int v64; // [esp+34h] [ebp-1E8h] int NumTiles; // [esp+38h] [ebp-1E4h] int NumSites; // [esp+38h] [ebp-1E4h] int v67; // [esp+3Ch] [ebp-1E0h] int v68; // [esp+3Ch] [ebp-1E0h] HDDMChipType hddmChipType; // [esp+4Ch] [ebp-1D0h] BYREF int v70; // [esp+C0h] [ebp-15Ch] int v71; // [esp+C4h] [ebp-158h] HDDMChip v72; // [esp+D0h] [ebp-14Ch] BYREF _DWORD v73[6]; // [esp+118h] [ebp-104h] BYREF _BYTE v74[16]; // [esp+130h] [ebp-ECh] BYREF _BYTE *v75; // [esp+140h] [ebp-DCh] _BYTE *v76; // [esp+144h] [ebp-D8h] int v77; // [esp+148h] [ebp-D4h] _BYTE chip_msg[8]; // [esp+150h] [ebp-CCh] BYREF int v79; // [esp+158h] [ebp-C4h] int v80; // [esp+15Ch] [ebp-C0h] int v81; // [esp+160h] [ebp-BCh] int v82; // [esp+164h] [ebp-B8h] int v83; // [esp+168h] [ebp-B4h] int v84; // [esp+16Ch] [ebp-B0h] int v85; // [esp+170h] [ebp-ACh] int v86; // [esp+174h] [ebp-A8h] int v87; // [esp+178h] [ebp-A4h] int v88; // [esp+180h] [ebp-9Ch] _BYTE v89[8]; // [esp+198h] [ebp-84h] BYREF int v90[31]; // [esp+1A0h] [ebp-7Ch] BYREF isl::iostreams::filtering_stream<boost::iostreams::input,char,stlp_std::char_traits<char>,stlp_std::allocator<char>,boost::iostreams::public_>::filtering_stream( v89, hddmChipDesc->dword50, 4, 0); sub_8D8DC4(); HDDMXng::Chip::Chip((HDDMXng::Chip *)chip_msg); HDDMDevice::readMessage((int)v90, (google::protobuf::MessageLite *)chip_msg); v2 = *(HDDMChipType **)stlp_std::map<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>,HDDMChipType *,stlp_std::less<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>>,stlp_std::allocator<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const,HDDMChipType *>>>::operator[]<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>>( &this->char1F8, hddmChipDesc); hddmChipDesc->hddmChipType = v2; hddmChipType.hddmChipType = v2; v62 = v2 == 0; if ( !v2 ) { v40 = (this->dword1F0 - this->hddmChipTypeVec) >> 2; stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::basic_string(&v72.gapD[11], v87); pHDDMChipType = (HDDMChipType *)operator new(0x78u); HDDMChipType::HDDMChipType((int)pHDDMChipType, (int)this, v40, (int)&v72.gapD[11]); hddmChipDesc->hddmChipType = pHDDMChipType; stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(&v72.gapD[11]); hddmChipType.hddmChipType = hddmChipDesc->hddmChipType; stlp_std::vector<HDDMChipType *,stlp_std::allocator<HDDMChipType *>>::push_back( &this->hddmChipTypeVec, &hddmChipType.hddmChipType); HDDMChipType::getName((HDDMChipType *)&v72.hddmChipType); v42 = (_DWORD *)stlp_std::map<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>,HDDMChipType *,stlp_std::less<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>>,stlp_std::allocator<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const,HDDMChipType *>>>::operator[]<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>>( &this->char1F8, &v72.hddmChipType); *v42 = hddmChipType.hddmChipType; stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(&v72.hddmChipType); v43 = hddmChipType.hddmChipType; v44 = v79; *(_DWORD *)(hddmChipType.hddmChipType + 36) = v79; *(_WORD *)(v43 + 44) = v82; *(_WORD *)(v43 + 46) = v83; v45 = v81; LOWORD(pHDDMChipType) = v80; *(_DWORD *)(v43 + 32) = v81 * v80; *(_WORD *)(v43 + 40) = v45; *(_WORD *)(v43 + 42) = (_WORD)pHDDMChipType; v75 = v74; v76 = v74; v74[0] = 0; stlp_std::vector<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>,stlp_std::allocator<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>>>::resize( v43 + 60, v44, v74); stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(v74); v75 = v74; v76 = v74; v74[0] = 0; stlp_std::vector<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>,stlp_std::allocator<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>>>::resize( hddmChipType.hddmChipType + 48, *(_DWORD *)(hddmChipType.hddmChipType + 32), v74); stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(v74); } v3 = this; if ( !this->isXngd ) { if ( (char *)v87 != &this->archFilePath ) stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::_M_assign( (int)&this->archFilePath, *(void **)(v87 + 20), *(_DWORD *)(v87 + 16)); *(_DWORD *)&this->nDeviceCode = (16 * (v79 & 0x3FFFFF)) | *(_DWORD *)&this->nDeviceCode & 0xFC00000F; this->numrows = v80; this->numcols = v81; this->rpmgridx = v82; this->rpmgridy = v83; this->extremaxmin = v84; this->extremaxmax = v85; this->extremaymin = v86; this->extremaymax = v88; v4 = hddmChipType.hddmChipType; this->dword94 = hddmChipType.hddmChipType + 96; this->dword98 = v4 + 72; v3 = this; } v5 = (v3->dword214 - v3->dword210) >> 2; stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::basic_string( v73, (int)&hddmChipDesc->char18); pHDDMChip = (HDDMChip *)operator new(0x3Cu); HDDMChip::HDDMChip(pHDDMChip, (int)this, v5, v73, hddmChipType.hddmChipType); hddmChipDesc->hddmChip = pHDDMChip; stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(v73); hddmChip = hddmChipDesc->hddmChip; dword214 = (char *)this->dword214; if ( dword214 != (char *)this->dword218 ) { *(_DWORD *)dword214 = hddmChipDesc->hddmChip; this->dword214 += 4; goto LABEL_9; } src = (_BYTE *)this->dword210; n = dword214 - src; v31 = 1; v32 = (dword214 - src) >> 2; if ( v32 ) v31 = (dword214 - src) >> 2; v33 = v32 + v31; if ( v33 > 0x3FFFFFFF || v32 > v33 ) { v39 = -4; LABEL_71: dest = (HDDMChip **)stlp_std::__malloc_alloc::allocate((stlp_std::__malloc_alloc *)v39, (unsigned int)v47); src = (_BYTE *)this->dword210; n = dword214 - src; v34 = (char *)dest + (v39 & 0xFFFFFFFC); goto LABEL_65; } if ( v33 ) { v39 = 4 * v33; goto LABEL_71; } v34 = 0; dest = 0; LABEL_65: v36 = dest; if ( n ) { v55 = dest; v36 = (HDDMChip **)((char *)memmove(dest, src, n) + n); dest = v55; } *v36 = hddmChip; v37 = v36 + 1; dword210 = (void *)this->dword210; if ( dword210 ) { v56 = dest; free(dword210); dest = v56; } this->dword210 = dest; this->dword214 = v37; this->dword218 = v34; LABEL_9: HDDMChip::getName(&v72); dword220 = this->dword220; if ( !dword220 ) { dword38 = &this->char21C; LABEL_58: stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::basic_string(v74, (int)&v72); v77 = 0; *(_DWORD *)&hddmChipType.gap9[11] = dword38; stlp_std::priv::_Rb_tree<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>,stlp_std::less<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>>,stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const,HDDMChip *>,stlp_std::priv::_Select1st<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const,HDDMChip *>>,stlp_std::priv::_MapTraitsT<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const,HDDMChip *>>,stlp_std::allocator<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const,HDDMChip *>>>::insert_unique(&hddmChipType.dword38); dword38 = (char *)hddmChipType.dword38; stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(v74); goto LABEL_16; } v9 = *(_DWORD *)&v72.gapD[3]; v10 = *(void **)&v72.gapD[7]; dword38 = &this->char21C; do { while ( stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::_M_compare( *(void **)(dword220 + 36), *(_DWORD *)(dword220 + 32), v10, v9) >= 0 ) { dword38 = (char *)dword220; dword220 = *(_DWORD *)(dword220 + 8); if ( !dword220 ) goto LABEL_14; } dword220 = *(_DWORD *)(dword220 + 12); } while ( dword220 ); LABEL_14: if ( &this->char21C == dword38 || stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::_M_compare( v10, v9, *((void **)dword38 + 9), *((_DWORD *)dword38 + 8)) < 0 ) { goto LABEL_58; } LABEL_16: *((_DWORD *)dword38 + 10) = hddmChip; stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(&v72); hddmChip->dword24 = hddmChipDesc->dword5C; hddmChip->dword28 = hddmChipDesc->dword60; *(_DWORD *)&hddmChip->hddmChipType = *(_DWORD *)&hddmChipDesc->word34; HDDMChipType::getTileGridExtent(&hddmChipType); v11 = hddmChipDesc->word36 + HIWORD(hddmChipType.dword0); hddmChip->word2C = hddmChipDesc->word34 + LOWORD(hddmChipType.dword0); hddmChip->word2E = v11; *(_DWORD *)&hddmChip->word38 = *(_DWORD *)&hddmChipDesc->word30; HDDMChipType::getRpmGridExtent(&hddmChipType); v12 = hddmChipDesc->word32 + HIWORD(hddmChipType.dword0); hddmChip->word34 = hddmChipDesc->word30 + LOWORD(hddmChipType.dword0); hddmChip->word36 = v12; if ( !this->hddmTileVec ) HDDMDevice::allocatesupersites(this); NumTiles = HDDMChipType::getNumTiles((HDDMChipType *)hddmChipType.hddmChipType); if ( NumTiles ) { v59 = 0; for ( i = 0; i != NumTiles; ++i ) { hddmTileVec = this->hddmTileVec; v14 = (unsigned int *)(hddmTileVec + 48 * (i + HDDMChip::getMinTileIndex(hddmChip))); HDDMTile::readme_pb(v14, v90); v14[11] = HDDMChip::getIndex(hddmChip); v14[1] = (v14[1] + HDDMChip::getMinSiteIndex(hddmChip)) & 0x3FFFFF | v14[1] & 0xFFC00000; *v14 = (4 * (((*v14 >> 2) + (__int16)hddmChipDesc->word38) & 0x1FFFFFF)) | *v14 & 0xF8000003; v14[2] += (__int16)hddmChipDesc->word3A; if ( !v62 ) { v75 = v74; v76 = v74; v74[0] = 0; stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_swap(v74, v14 + 3); stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(v74); goto LABEL_31; } v15 = *(_DWORD *)(hddmChipType.hddmChipType + 48); if ( i >= -1431655765 * ((*(_DWORD *)(hddmChipType.hddmChipType + 52) - v15) >> 3) ) { v46 = stlp_std::__stl_throw_out_of_range((stlp_std *)"vector", srca); operator delete(hddmChip); goto LABEL_74; } stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_swap(v59 + v15, v14 + 3); v16 = *(_DWORD *)(hddmChipType.hddmChipType + 48); if ( i >= -1431655765 * ((*(_DWORD *)(hddmChipType.hddmChipType + 52) - v16) >> 3) ) { v46 = stlp_std::__stl_throw_out_of_range((stlp_std *)"vector", srcb); LABEL_74: stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(hddmTileVec); goto LABEL_75; } v17 = v59 + v16; v67 = v17; v63 = hddmChipType.hddmChipType + 72; v18 = *(_DWORD **)(hddmChipType.hddmChipType + 76); if ( v18 ) { v19 = *(_DWORD *)(v17 + 16); v20 = *(void **)(v17 + 20); dword3C = hddmChipType.hddmChipType + 72; do { while ( stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::_M_compare( *(void **)(v18[4] + 20), *(_DWORD *)(v18[4] + 16), v20, v19) >= 0 ) { dword3C = (int)v18; v18 = (_DWORD *)v18[2]; if ( !v18 ) goto LABEL_28; } v18 = (_DWORD *)v18[3]; } while ( v18 ); LABEL_28: if ( v63 != dword3C && stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::_M_compare( v20, v19, *(void **)(*(_DWORD *)(dword3C + 16) + 20), *(_DWORD *)(*(_DWORD *)(dword3C + 16) + 16)) >= 0 ) { goto LABEL_30; } } else { dword3C = hddmChipType.hddmChipType + 72; } hddmChipType.dword64 = v67; hddmChipType.dword68 = 0; hddmChipType.dword24 = dword3C; stlp_std::priv::_Rb_tree<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const*,HDDMChipType::_DerefStringPtrLessThan,stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const* const,unsigned int>,stlp_std::priv::_Select1st<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const* const,unsigned int>>,stlp_std::priv::_MapTraitsT<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const* const,unsigned int>>,stlp_std::allocator<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const* const,unsigned int>>>::insert_unique(&hddmChipType.dword3C); dword3C = hddmChipType.dword3C; LABEL_30: *(_DWORD *)(dword3C + 20) = i; LABEL_31: v59 += 24; } } if ( !this->hddmSiteVec ) HDDMDevice::allocatesites(this); NumSites = HDDMChipType::getNumSites((HDDMChipType *)hddmChipType.hddmChipType); if ( NumSites ) { v60 = 0; for ( j = 0; j != NumSites; ++j ) { hddmSiteVec = this->hddmSiteVec; v22 = hddmSiteVec + 36 * (j + HDDMChip::getMinSiteIndex(hddmChip)); HDDMSite::readme_pb(v22, (int)v90); *(_DWORD *)(v22 + 32) = HDDMChip::getIndex(hddmChip); *(_DWORD *)v22 = (4 * (((*(_DWORD *)v22 >> 2) + HDDMChip::getMinTileIndex(hddmChip)) & 0x3FFFFF)) | *(_DWORD *)v22 & 0xFF000003; if ( *(char *)(v22 + 7) >= 0 ) { HDDMChip::getRpmGridRect((HDDMChip *)&hddmChipType.dword44); *(_WORD *)(v22 + 4) = (*(_WORD *)&hddmChipType.byte48 + *(_WORD *)(v22 + 4)) & 0xFFF | *(_WORD *)(v22 + 4) & 0xF000; srcc = (const char *)hddmChip; HDDMChip::getRpmGridRect((HDDMChip *)&hddmChipType.dword54); *(_DWORD *)(v22 + 4) = ((((unsigned __int16)(*(_DWORD *)(v22 + 4) >> 12) + HIWORD(hddmChipType.dword58)) & 0xFFF) << 12) | *(_DWORD *)(v22 + 4) & 0xFF000FFF; } if ( !v62 ) { v75 = v74; v76 = v74; v74[0] = 0; stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_swap(v74, v22 + 8); stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(v74); goto LABEL_49; } v23 = *(_DWORD *)(hddmChipType.hddmChipType + 60); if ( -1431655765 * ((*(_DWORD *)(hddmChipType.hddmChipType + 64) - v23) >> 3) <= j ) goto LABEL_78; stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_swap(v60 + v23, v22 + 8); v24 = *(_DWORD *)(hddmChipType.hddmChipType + 60); if ( -1431655765 * ((*(_DWORD *)(hddmChipType.hddmChipType + 64) - v24) >> 3) <= j ) { stlp_std::__stl_throw_out_of_range((stlp_std *)"vector", srcd); LABEL_78: v46 = stlp_std::__stl_throw_out_of_range((stlp_std *)"vector", srcc); stlp_std::priv::_String_base<char,stlp_std::allocator<char>>::_M_deallocate_block(v60); LABEL_75: HDDMXng::Chip::~Chip((HDDMXng::Chip *)chip_msg); isl::iostreams::filtering_stream<boost::iostreams::input,char,stlp_std::char_traits<char>,stlp_std::allocator<char>,boost::iostreams::public_>::~filtering_stream(v89); _Unwind_Resume(v46); } v25 = v60 + v24; v68 = v25; v64 = hddmChipType.hddmChipType + 96; v26 = *(_DWORD **)(hddmChipType.hddmChipType + 100); if ( v26 ) { v27 = *(_DWORD *)(v25 + 16); v28 = *(void **)(v25 + 20); dword40 = hddmChipType.hddmChipType + 96; do { while ( stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::_M_compare( *(void **)(v26[4] + 20), *(_DWORD *)(v26[4] + 16), v28, v27) >= 0 ) { dword40 = (int)v26; v26 = (_DWORD *)v26[2]; if ( !v26 ) goto LABEL_46; } v26 = (_DWORD *)v26[3]; } while ( v26 ); LABEL_46: if ( dword40 != v64 && stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::_M_compare( v28, v27, *(void **)(*(_DWORD *)(dword40 + 16) + 20), *(_DWORD *)(*(_DWORD *)(dword40 + 16) + 16)) >= 0 ) { goto LABEL_48; } } else { dword40 = hddmChipType.hddmChipType + 96; } v70 = v68; v71 = 0; hddmChipType.dword34 = dword40; stlp_std::priv::_Rb_tree<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const*,HDDMChipType::_DerefStringPtrLessThan,stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const* const,unsigned int>,stlp_std::priv::_Select1st<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const* const,unsigned int>>,stlp_std::priv::_MapTraitsT<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const* const,unsigned int>>,stlp_std::allocator<stlp_std::pair<stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>> const* const,unsigned int>>>::insert_unique(&hddmChipType.dword40); dword40 = hddmChipType.dword40; LABEL_48: *(_DWORD *)(dword40 + 20) = j; LABEL_49: v60 += 24; } } HDDMXng::Chip::~Chip((HDDMXng::Chip *)chip_msg); isl::iostreams::filtering_stream<boost::iostreams::input,char,stlp_std::char_traits<char>,stlp_std::allocator<char>,boost::iostreams::public_>::~filtering_stream(v89); } void __cdecl HDDMDevice::writechip_pb(HDDMDevice *this, int ostream, __int16 nFileVersion) { int v3; // eax int v4; // eax int v5; // edi int v6; // ebp int v7; // ebp int v8; // edi int v9; // [esp+18h] [ebp-74h] __int16 v10; // [esp+2Ch] [ebp-60h] BYREF __int16 v11; // [esp+2Eh] [ebp-5Eh] BYREF _BYTE chip_msg[8]; // [esp+30h] [ebp-5Ch] BYREF int v13; // [esp+38h] [ebp-54h] int word4; // [esp+3Ch] [ebp-50h] int word6; // [esp+40h] [ebp-4Ch] int word8; // [esp+44h] [ebp-48h] int wordA; // [esp+48h] [ebp-44h] int dword10; // [esp+4Ch] [ebp-40h] int dword14; // [esp+50h] [ebp-3Ch] int dword18; // [esp+54h] [ebp-38h] int v21; // [esp+58h] [ebp-34h] int v22; // [esp+5Ch] [ebp-30h] int dword1C; // [esp+60h] [ebp-2Ch] int v24; // [esp+68h] [ebp-24h] stlp_std::basic_ostream<char,stlp_std::char_traits<char>>::write(ostream, "xngp", 4); v10 = nFileVersion | 0x8000; v11 = 0; stlp_std::basic_ostream<char,stlp_std::char_traits<char>>::write(ostream, &v10, 2); stlp_std::basic_ostream<char,stlp_std::char_traits<char>>::write(ostream, &v11, 2); HDDMXng::Chip::Chip((HDDMXng::Chip *)chip_msg); v13 = (*(_DWORD *)&this->nDeviceCode >> 4) & 0x3FFFFF; word4 = (unsigned __int16)this->numrows; word6 = (unsigned __int16)this->numcols; word8 = (unsigned __int16)this->rpmgridx; wordA = (unsigned __int16)this->rpmgridy; dword10 = this->extremaxmin; dword14 = this->extremaxmax; dword18 = this->extremaymin; dword1C = this->extremaymax; v24 |= 0x5FFu; v3 = v22; if ( (_UNKNOWN *)v22 == &google::protobuf::internal::kEmptyString ) { v3 = operator new(0x18u); *(_DWORD *)(v3 + 16) = v3; *(_DWORD *)(v3 + 20) = v3; *(_BYTE *)v3 = 0; v22 = v3; } stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::_M_assign( v3, (void *)this->dword38, this->dword34); v24 |= 0x200u; v4 = v21; if ( (_UNKNOWN *)v21 == &google::protobuf::internal::kEmptyString ) { v4 = operator new(0x18u); *(_DWORD *)(v4 + 16) = v4; *(_DWORD *)(v4 + 20) = v4; *(_BYTE *)v4 = 0; v21 = v4; } stlp_std::basic_string&lt;char,stlp_std::char_traits<char>,stlp_std::allocator<char>>::_M_assign( v4, (void *)this->dword50, this->dword4C); HDDMDevice::writeMessage(ostream, chip_msg); v9 = (unsigned __int16)this->numrows * (unsigned __int16)this->numcols; v5 = 0; v6 = 0; if ( v9 ) { do { HDDMTile::writeme_pb(v5 + this->hddmTileVec, ostream); ++v6; v5 += 48; } while ( v6 != v9 ); } v7 = 0; v8 = 0; if ( (*(_DWORD *)&this->nDeviceCode & 0x3FFFFF0) != 0 ) { do { HDDMSite::writeme_pb(v7 + this->hddmSiteVec, ostream); ++v8; v7 += 36; } while ( ((*(_DWORD *)&this->nDeviceCode >> 4) & 0x3FFFFF) > v8 ); } stlp_std::basic_ostream<char,stlp_std::char_traits<char>>::flush(ostream); HDDMXng::Chip::~Chip((HDDMXng::Chip *)chip_msg); }
10-06
/usr/include/c++/9/bits/predefined_ops.h:283:11: error: no match for call to ‘(pcl::getFieldIndex(const string&amp;, const std::vector<pcl::PCLPointField>&) [with PointT = pcl::PointXYZL; std::string = std::__cxx11::basic_string&lt;char>]::<lambda(const int&)>) (const pcl::PCLPointField&)’ 283 | { return bool(_M_pred(*__it)); } | ^~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/pcl-1.10/pcl/common/io.h:586, from /usr/include/pcl-1.10/pcl/io/file_io.h:41, from /usr/include/pcl-1.10/pcl/io/pcd_io.h:44, from /home/wzz/shenlan/slambook/ch5/joinMap/joinMap.cpp:9: /usr/include/pcl-1.10/pcl/common/impl/io.hpp:73:7: note: candidate: ‘pcl::getFieldIndex(const string&amp;, const std::vector<pcl::PCLPointField>&) [with PointT = pcl::PointXYZL; std::string = std::__cxx11::basic_string&lt;char>]::<lambda(const int&)>’ 73 | [&field_name](const auto& field) { return field.name == field_name; }); | ^ /usr/include/pcl-1.10/pcl/common/impl/io.hpp:73:7: note: no known conversion for argument 1 from ‘const pcl::PCLPointField’ to ‘const int&’ In file included from /usr/include/c++/9/bits/stl_algobase.h:71, from /usr/include/c++/9/bits/char_traits.h:39, from /usr/include/c++/9/ios:40, from /usr/include/c++/9/ostream:38, from /usr/include/c++/9/iostream:39, from /home/wzz/shenlan/slambook/ch5/joinMap/joinMap.cpp:1: /usr/include/c++/9/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_pred<_Predicate>::operator()(_Iterator) [with _Iterator = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vector<pcl::PCLPointField> >; _Predicate = pcl::getFieldIndex(const string&amp;, const std::vector<pcl::PCLPointField>&) [with PointT = pcl::PointXYZ; std::string = std::__cxx11::basic_string&lt;char>]::<lambda(const int&)>]’: /usr/include/c++/9/bits/stl_algo.h:120:14: required from ‘_RandomAccessIterator std::__find_if(_RandomAccessIterator, _RandomAccessIterator, _Predicate, std::random_access_iterator_tag) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vector<pcl::PCLPointField> >; _Predicate = __gnu_cxx::__ops::_Iter_pred<pcl::getFieldIndex(const string&amp;, const std::vector<pcl::PCLPointField>&) [with PointT = pcl::PointXYZ; std::string = std::__cxx11::basic_string&lt;char>]::<lambda(const int&)> >]’ /usr/include/c++/9/bits/stl_algo.h:161:23: required from ‘_Iterator std::__find_if(_Iterator, _Iterator, _Predicate) [with _Iterator = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vector<pcl::PCLPointField> >; _Predicate = __gnu_cxx::__ops::_Iter_pred<pcl::getFieldIndex(const string&amp;, const std::vector<pcl::PCLPointField>&) [with PointT = pcl::PointXYZ; std::string = std::__cxx11::basic_string&lt;char>]::<lambda(const int&)> >]’ /usr/include/c++/9/bits/stl_algo.h:3969:28: required from ‘_IIter std::find_if(_IIter, _IIter, _Predicate) [with _IIter = __gnu_cxx::__normal_iterator<const pcl::PCLPointField*, std::vector<pcl::PCLPointField> >; _Predicate = pcl::getFieldIndex(const string&amp;, const std::vector<pcl::PCLPointField>&) [with PointT = pcl::PointXYZ; std::string = std::__cxx11::basic_string&lt;char>]::<lambda(const int&)>]’ /usr/include/pcl-1.10/pcl/common/impl/io.hpp:72:35: required from ‘int pcl::getFieldIndex(const string&amp;, const std::vector<pcl::PCLPointField>&) [with PointT = pcl::PointXYZ; std::string = std::__cxx11::basic_string&lt;char>]’ /usr/include/pcl-1.10/pcl/common/impl/io.hpp:64:37: required from ‘int pcl::getFieldIndex(const string&amp;, std::vector<pcl::PCLPointField>&) [with PointT = pcl::PointXYZ; std::string = std::__cxx11::basic_string&lt;char>]’ /usr/include/pcl-1.10/pcl/visualization/impl/point_cloud_color_handlers.hpp:114:43: required from ‘void pcl::visualization::PointCloudColorHandlerRGBField<PointT>::setInputCloud(const PointCloudConstPtr&) [with PointT = pcl::PointXYZ; pcl::visualization::PointCloudColorHandlerRGBField<PointT>::PointCloudConstPtr = boost::shared_ptr<const pcl::PointCloud<pcl::PointXYZ> >]’ /usr/include/pcl-1.10/pcl/visualization/point_cloud_color_handlers.h:287:11: required from ‘pcl::visualization::PointCloudColorHandlerRGBField<PointT>::PointCloudColorHandlerRGBField(const PointCloudConstPtr&) [with PointT = pcl::PointXYZ; pcl::visualization::PointCloudColorHandlerRGBField<PointT>::PointCloudConstPtr = boost::shared_ptr<const pcl::PointCloud<pcl::PointXYZ> >]’ /usr/include/pcl-1.10/pcl/visualization/impl/pcl_visualizer.hpp:100:44: required from ‘bool pcl::visualization::PCLVisualizer::addPointCloud(const typename pcl::PointCloud<PointT>::ConstPtr&, const pcl::visualization::PointCloudGeometryHandler<PointT>&, const string&amp;, int) [with PointT = pcl::PointXYZ; typename pcl::PointCloud<PointT>::ConstPtr = boost::shared_ptr<const pcl::PointCloud<pcl::PointXYZ> >; std::string = std::__cxx11::basic_string&lt;char>]’ /usr/include/pcl-1.10/pcl/visualization/impl/pcl_visualizer.hpp:82:72: required from ‘bool pcl::visualization::PCLVisualizer::addPointCloud(const typename pcl::PointCloud<PointT>::ConstPtr&, const string&amp;, int) [with PointT = pcl::PointXYZ; typename pcl::PointCloud<PointT>::ConstPtr = boost::shared_ptr<const pcl::PointCloud<pcl::PointXYZ> >; std::string = std::__cxx11::basic_string&lt;char>]’ /usr/include/pcl-1.10/pcl/visualization/pcl_visualizer.h:867:68: required from here /usr/include/c++/9/bits/predefined_ops.h:283:11: error: no match for call to ‘(pcl::getFieldIndex(const string&amp;, const std::vector<pcl::PCLPointField>&) [with PointT = pcl::PointXYZ; std::string = std::__cxx11::basic_string&lt;char>]::<lambda(const int&)>) (const pcl::PCLPointField&)’ 283 | { return bool(_M_pred(*__it)); } | ^~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/pcl-1.10/pcl/common/io.h:586, from /usr/include/pcl-1.10/pcl/io/file_io.h:41, from /usr/include/pcl-1.10/pcl/io/pcd_io.h:44, from /home/wzz/shenlan/slambook/ch5/joinMap/joinMap.cpp:9: /usr/include/pcl-1.10/pcl/common/impl/io.hpp:73:7: note: candidate: ‘pcl::getFieldIndex(const string&amp;, const std::vector<pcl::PCLPointField>&) [with PointT = pcl::PointXYZ; std::string = std::__cxx11::basic_string&lt;char>]::<lambda(const int&)>’ 73 | [&field_name](const auto& field) { return field.name == field_name; }); | ^ /usr/include/pcl-1.10/pcl/common/impl/io.hpp:73:7: note: no known conversion for argument 1 from ‘const pcl::PCLPointField’ to ‘const int&’ make[2]: *** [CMakeFiles/joinMap.dir/build.make:63:CMakeFiles/joinMap.dir/joinMap.cpp.o] 错误 1 make[1]: *** [CMakeFiles/Makefile2:76:CMakeFiles/joinMap.dir/all] 错误 2 make: *** [Makefile:84:all] 错误 2
09-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值