linux c++ stl hash_map basic_string 使用

本文探讨了在GNU C++中使用STL的hash_map处理string类型数据的方法。通过自定义hash函数解决hash_map对string的支持问题,并分享了一种有效的实现方式及避免内存管理错误的实践。

stl的hash_map对int 支持良好,但是对string支持不够,经过良久查找,找到linux c++下使用stl 的hash_map 对stl string的用法

#include <ext/hash_map>  

using namespace std;  
using namespace __gnu_cxx; 


namespace __gnu_cxx
{
template<> struct hash<string>
{  
size_t operator()(const string& s) const  
{return __stl_hash_string(s.c_str());}
};  
}  

有了上面的声明后,就可以像使用map一样使用hash_map了

!!!! 上面的程序编译通过了,但是放到服务器上执行的时候,base_string不断的出现析构的段错误,

malloc_printerr()

__libc_message()

signal 6  aborted 等一系列 让人茫然的错误


后来想了想,参考同事的代码,把hash map的使用 改成这样:

#include <ext/hash_map>

using namespace std;
using namespace __gnu_cxx;
struct str_hash
{
    size_t operator()(const string& str) const
    {
        return __gnu_cxx::__stl_hash_string(str.c_str());
    }
};
struct str_equal
{
    bool operator()(const string& s1,const string& s2) const
    {
        return s1==s2;
    }
};

hash_map<string,bool , str_hash, str_equal>   m_h;

之后在用迭代器时,也要这样全声明, 程序就好了,原因还不清楚,待找到后,再编辑

^ /usr/include/c++/5/bits/unordered_map.h:111:46: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::key_equal key_equal; ^ /usr/include/c++/5/bits/unordered_map.h:112:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::allocator_type allocator_type; ^ /usr/include/c++/5/bits/unordered_map.h:117:45: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::pointer pointer; ^ /usr/include/c++/5/bits/unordered_map.h:118:50: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::const_pointer const_pointer; ^ /usr/include/c++/5/bits/unordered_map.h:119:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::reference reference; ^ /usr/include/c++/5/bits/unordered_map.h:120:52: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::const_reference const_reference; ^ /usr/include/c++/5/bits/unordered_map.h:121:46: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::iterator iterator; ^ /usr/include/c++/5/bits/unordered_map.h:122:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::const_iterator const_iterator; ^ /usr/include/c++/5/bits/unordered_map.h:123:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::local_iterator local_iterator; ^ /usr/include/c++/5/bits/unordered_map.h:124:57: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::const_local_iterator const_local_iterator; ^ /usr/include/c++/5/bits/unordered_map.h:125:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::size_type size_type; ^ /usr/include/c++/5/bits/unordered_map.h:126:52: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ typedef typename _Hashtable::difference_type difference_type; ^ /usr/include/c++/5/bits/unordered_map.h:280:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ operator=(initializer_list<value_type> __l) ^ /usr/include/c++/5/bits/unordered_map.h:379:2: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ emplace(_Args&&... __args) ^ /usr/include/c++/5/bits/unordered_map.h:432:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ insert(const value_type& __x) ^ /usr/include/c++/5/bits/unordered_map.h:439:2: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ insert(_Pair&& __x) ^ /usr/include/c++/5/bits/unordered_map.h:499:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ insert(initializer_list<value_type> __l) ^ /usr/include/c++/5/bits/unordered_map.h:645:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ equal_range(const key_type& __x) ^ /usr/include/c++/5/bits/unordered_map.h:649:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_data_precision> >, std::__detail::__is_noexcept_hash<raw_data_precision, std::hash<raw_data_precision> > > >’ equal_range(const key_type& __x) const ^ In file included from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:29:0, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_init.h:19, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_sync.cpp:19: /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h: In static member function ‘static std::__cxx11::string ss_enum_cast<raw_data_precision>::to_str(const raw_data_precision&)’: /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:88:1: error: too many initializers for ‘const std::unordered_map<raw_data_precision, std::__cxx11::basic_string<char> >’ }); ^ /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/../common/ss_util/ss_enum_cast.hpp:38:73: note: in definition of macro ‘SS_ENUM_CAST_STR’ static const std::unordered_map<_EnumType, std::string> m = __VA_ARGS__; \ ^ /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/../common/ss_util/ss_enum_cast.hpp:40:25: error: ‘const class std::unordered_map<raw_data_precision, std::__cxx11::basic_string<char> >’ has no member named ‘find’ auto it = m.find(e); \ ^ /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:81:1: note: in expansion of macro ‘SS_ENUM_CAST_STR’ SS_ENUM_CAST_STR(raw_data_precision , { ^ /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/../common/ss_util/ss_enum_cast.hpp:41:28: error: ‘const class std::unordered_map<raw_data_precision, std::__cxx11::basic_string<char> >’ has no member named ‘end’ return it != m.end() ? it->second : "Unknown"; \ ^ /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:81:1: note: in expansion of macro ‘SS_ENUM_CAST_STR’ SS_ENUM_CAST_STR(raw_data_precision , { ^ In file included from /usr/include/c++/5/bits/hashtable.h:35:0, from /usr/include/c++/5/unordered_map:47, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:25, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_init.h:19, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_sync.cpp:19: /usr/include/c++/5/bits/hashtable_policy.h: In instantiation of ‘struct std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> >’: /usr/include/c++/5/type_traits:137:12: required from ‘struct std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > >’ /usr/include/c++/5/type_traits:148:38: required from ‘struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ /usr/include/c++/5/bits/unordered_map.h:100:66: required from ‘class std::unordered_map<raw_video_fmt, std::__cxx11::basic_string<char> >’ /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:107:69: required from here /usr/include/c++/5/bits/hashtable_policy.h:85:34: error: no match for call to ‘(const std::hash<raw_video_fmt>) (const raw_video_fmt&)’ noexcept(declval<const _Hash&>()(declval<const _Key&>()))> ^ In file included from /usr/include/c++/5/bits/move.h:57:0, from /usr/include/c++/5/bits/stl_pair.h:59, from /usr/include/c++/5/bits/stl_algobase.h:64, from /usr/include/c++/5/deque:60, from /usr/include/c++/5/queue:60, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:20, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_init.h:19, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_sync.cpp:19: /usr/include/c++/5/type_traits: In instantiation of ‘struct std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’: /usr/include/c++/5/bits/unordered_map.h:100:66: required from ‘class std::unordered_map<raw_video_fmt, std::__cxx11::basic_string<char> >’ /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:107:69: required from here /usr/include/c++/5/type_traits:148:38: error: ‘value’ is not a member of ‘std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > >’ : public integral_constant<bool, !_Pp::value> ^ In file included from /usr/include/c++/5/unordered_map:48:0, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:25, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_init.h:19, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_sync.cpp:19: /usr/include/c++/5/bits/unordered_map.h: In instantiation of ‘class std::unordered_map<raw_video_fmt, std::__cxx11::basic_string<char> >’: /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:107:69: required from here /usr/include/c++/5/bits/unordered_map.h:100:66: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef __umap_hashtable<_Key, _Tp, _Hash, _Pred, _Alloc> _Hashtable; ^ /usr/include/c++/5/bits/unordered_map.h:107:45: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::key_type key_type; ^ /usr/include/c++/5/bits/unordered_map.h:108:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::value_type value_type; ^ /usr/include/c++/5/bits/unordered_map.h:109:48: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::mapped_type mapped_type; ^ /usr/include/c++/5/bits/unordered_map.h:110:43: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::hasher hasher; ^ /usr/include/c++/5/bits/unordered_map.h:111:46: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::key_equal key_equal; ^ /usr/include/c++/5/bits/unordered_map.h:112:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::allocator_type allocator_type; ^ /usr/include/c++/5/bits/unordered_map.h:117:45: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::pointer pointer; ^ /usr/include/c++/5/bits/unordered_map.h:118:50: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::const_pointer const_pointer; ^ /usr/include/c++/5/bits/unordered_map.h:119:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::reference reference; ^ /usr/include/c++/5/bits/unordered_map.h:120:52: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::const_reference const_reference; ^ /usr/include/c++/5/bits/unordered_map.h:121:46: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::iterator iterator; ^ /usr/include/c++/5/bits/unordered_map.h:122:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::const_iterator const_iterator; ^ /usr/include/c++/5/bits/unordered_map.h:123:51: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::local_iterator local_iterator; ^ /usr/include/c++/5/bits/unordered_map.h:124:57: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::const_local_iterator const_local_iterator; ^ /usr/include/c++/5/bits/unordered_map.h:125:47: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::size_type size_type; ^ /usr/include/c++/5/bits/unordered_map.h:126:52: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ typedef typename _Hashtable::difference_type difference_type; ^ /usr/include/c++/5/bits/unordered_map.h:280:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ operator=(initializer_list<value_type> __l) ^ /usr/include/c++/5/bits/unordered_map.h:379:2: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ emplace(_Args&&... __args) ^ /usr/include/c++/5/bits/unordered_map.h:432:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ insert(const value_type& __x) ^ /usr/include/c++/5/bits/unordered_map.h:439:2: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ insert(_Pair&& __x) ^ /usr/include/c++/5/bits/unordered_map.h:499:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ insert(initializer_list<value_type> __l) ^ /usr/include/c++/5/bits/unordered_map.h:645:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ equal_range(const key_type& __x) ^ /usr/include/c++/5/bits/unordered_map.h:649:7: error: ‘value’ is not a member of ‘std::__not_<std::__and_<std::__is_fast_hash<std::hash<raw_video_fmt> >, std::__detail::__is_noexcept_hash<raw_video_fmt, std::hash<raw_video_fmt> > > >’ equal_range(const key_type& __x) const ^ In file included from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_init.h:19:0, from /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_sync.cpp:19: /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h: In static member function ‘static std::__cxx11::string ss_enum_cast<raw_video_fmt>::to_str(const raw_video_fmt&)’: /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:126:9: error: too many initializers for ‘const std::unordered_map<raw_video_fmt, std::__cxx11::basic_string<char> >’ }; ^ /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:127:21: error: ‘const class std::unordered_map<raw_video_fmt, std::__cxx11::basic_string<char> >’ has no member named ‘find’ auto it = m.find(fmt); ^ /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos/amigos_base/amigos_module_base.h:128:24: error: ‘const class std::unordered_map<raw_video_fmt, std::__cxx11::basic_string<char> >’ has no member named ‘end’ return it != m.end() ? it->second : "Unknown"; ^ /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/build/compile.mk:114: recipe for target '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_rtsp.user.x86.o' failed make[12]: *** [/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_rtsp.user.x86.o] Error 1 /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/build/compile.mk:114: recipe for target '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_env_monitor.user.x86.o' failed make[12]: *** [/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_env_monitor.user.x86.o] Error 1 /home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/build/compile.mk:114: recipe for target '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_sync.user.x86.o' failed make[12]: *** [/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code/libraries/amigos_ext/modules/amigos_module_sync.user.x86.o] Error 1 make[12]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code' Makefile:182: recipe for target 'libraries/amigos_ext_obj_all' failed make[11]: *** [libraries/amigos_ext_obj_all] Error 2 make[11]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code' Makefile:143: recipe for target 'depend_internal' failed make[10]: *** [depend_internal] Error 2 make[10]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code' Makefile:99: recipe for target 'all' failed make[9]: *** [all] Error 2 make[9]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code' Makefile:167: recipe for target 'applications/mixer/app_amigos/gen_code' failed make[8]: *** [applications/mixer/app_amigos/gen_code] Error 2 make[8]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code' applications/mixer/app_amigos/gen_code/script.mk:41: recipe for target 'script_start' failed make[7]: *** [script_start] Error 2 make[7]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code' Makefile:207: recipe for target 'applications/mixer/app_amigos/gen_code_script_start' failed make[6]: *** [applications/mixer/app_amigos/gen_code_script_start] Error 2 make[6]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code' Makefile:99: recipe for target 'all' failed make[5]: *** [all] Error 2 make[5]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify/sample_code' makefile:46: recipe for target 'all' failed make[4]: *** [all] Error 2 make[4]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/sdk/verify' ../sdk/sdk.mk:81: recipe for target 'verify' failed make[3]: *** [verify] Error 2 make[3]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/project' ../sdk/sdk.mk:49: recipe for target 'sdk' failed make[2]: *** [sdk] Error 2 make[2]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/project' makefile:279: recipe for target 'release' failed make[1]: *** [release] Error 2 make[1]: Leaving directory '/home/tp/Project/AOV-课题/软件sdk/Iford_IMD00V5.1.1/Iford_IMD00V5.1.1/SourceCode/project' makefile:68: recipe for target 'image' failed make: *** [image] Error 2 问题在哪
最新发布
09-16
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值