2014-01-23 42 views
1

我正在linux上工作。 我試圖從提升1_45傳遞到提升1_49。 我的代碼與boost 1_45和兩個gcc一起工作。boost 1_49_0錯誤與gcc 3.3 mips32

我用多個編譯器編譯我的代碼。
隨着升壓1_49_0:
隨着gcc 4.4的工作。 (這是針對centos 6.4的x86_64)
使用gcc 3.3不能編譯。 3.3被編譯爲MIPS32
我沒有在谷歌發現這個錯誤...

代碼

#include <boost/unordered_set.hpp> 
... 
    boost::unordered_set<int> po_refCombinedElements; 
    po_refCombinedElementsp.insert(0); 

錯誤

/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp: In instantiation of `boost::unordered::detail::default_type_pointer<std::allocator<boost::unordered::detail::ptr_node<int> >, boost::unordered::detail::ptr_node<int>*>': 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:358: instantiated from `boost::unordered::detail::allocator_traits<std::allocator<boost::unordered::detail::ptr_node<int> > >' 
/rootdir/source/extlibs/boost/boost/unordered/detail/unique.hpp:107: instantiated from `boost::unordered::detail::pick_node<std::allocator<int>, int>' 
/rootdir/source/extlibs/boost/boost/unordered/detail/unique.hpp:129: instantiated from `boost::unordered::detail::set<std::allocator<int>, int, boost::hash<int>, std::equal_to<int> >' 
/rootdir/source/extlibs/boost/boost/unordered/unordered_set.hpp:58: instantiated from `boost::unordered::unordered_set<int, boost::hash<int>, std::equal_to<int>, std::allocator<int> >' 
CrHealthAlarmContainer.cpp:43: instantiated from here 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:271: error: invalid use of undefined type `struct   boost::unordered::detail::default_type_pointer<std::allocator<boost::unordered::detail::ptr_node<int> >, boost::unordered::detail::ptr_node<int>*>' 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:271: error: declaration of `struct boost::unordered::detail::default_type_pointer<std::allocator<boost::unordered::detail::ptr_node<int> >, boost::unordered::detail::ptr_node<int>*>' 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:271: error: enumerator value for `value' not integer constant 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp: In instantiation of `boost::unordered::detail::default_type_const_pointer<std::allocator<boost::unordered::detail::ptr_node<int> >, const boost::unordered::detail::ptr_node<int>*>': 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:365: instantiated from `boost::unordered::detail::allocator_traits<std::allocator<boost::unordered::detail::ptr_node<int> > >' 
/rootdir/source/extlibs/boost/boost/unordered/detail/unique.hpp:107: instantiated from `boost::unordered::detail::pick_node<std::allocator<int>, int>' 
/rootdir/source/extlibs/boost/boost/unordered/detail/unique.hpp:129: instantiated from `boost::unordered::detail::set<std::allocator<int>, int, boost::hash<int>, std::equal_to<int> >' 
/rootdir/source/extlibs/boost/boost/unordered/unordered_set.hpp:58: instantiated from `boost::unordered::unordered_set<int, boost::hash<int>, std::equal_to<int>, std::allocator<int> >' 
CrHealthAlarmContainer.cpp:43: instantiated from here 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:272: error: invalid use of undefined type `struct boost::unordered::detail::default_type_const_pointer<std::allocator<boost::unordered::detail::ptr_node<int> >, const boost::unordered::detail::ptr_node<int>*>' 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:272: error: declaration of `struct boost::unordered::detail::default_type_const_pointer<std::allocator<boost::unordered::detail::ptr_node<int> >, const boost::unordered::detail::ptr_node<int>*>' 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:272: error: enumerator value for `value' not integer constant 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp: In instantiation of `boost::unordered::detail::default_type_difference_type<std::allocator<boost::unordered::detail::ptr_node<int> >, ptrdiff_t>': 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:375: instantiated from `boost::unordered::detail::allocator_traits<std::allocator<boost::unordered::detail::ptr_node<int> > >' 
/rootdir/source/extlibs/boost/boost/unordered/detail/unique.hpp:107: instantiated from `boost::unordered::detail::pick_node<std::allocator<int>, int>' 
/rootdir/source/extlibs/boost/boost/unordered/detail/unique.hpp:129: instantiated from `boost::unordered::detail::set<std::allocator<int>, int, boost::hash<int>, std::equal_to<int> >' 
/rootdir/source/extlibs/boost/boost/unordered/unordered_set.hpp:58: instantiated from `boost::unordered::unordered_set<int, boost::hash<int>, std::equal_to<int>, std::allocator<int> >' 
CrHealthAlarmContainer.cpp:43: instantiated from here 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:275: error: invalid use of undefined type `struct boost::unordered::detail::default_type_difference_type<std::allocator<boost::unordered::detail::ptr_node<int> >, ptrdiff_t>' 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:275: error: declaration of `struct boost::unordered::detail::default_type_difference_type<std::allocator<boost::unordered::detail::ptr_node<int> >, ptrdiff_t>' 
/rootdir/source/extlibs/boost/boost/unordered/detail/allocator_helpers.hpp:275: error: enumerator value for `value' not integer constant 
+1

你的問題是什麼? –

+0

我的問題是爲什麼我得到這些錯誤 – davidbobo

+0

因爲GCC 3.3在2003年發佈? –

回答

0

升壓requires GCC 4.5 or higher。我找不到Boost 1.49的引用,但這仍然是問題。我想他們使用的功能是在古代GCC 3.3(2003年5月!)

+0

對我來說GCC 3.3工作在boost 1.45 – davidbobo

+0

@davidbobo:因此,在早期的Boost版本中,他們並不需要這些功能...... –

+0

@LightnessRacesinOrbit boost列出了[gcc-3.3]的最低要求(http:///www.boost.org/users/history/version_1_55_0.html),但與所有非主要目標一樣,不能保證所有的庫和功能都可用。 – Mgetz