I am getting the following error when building from source.
/usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_tree.h:389: error: no matching function for call to ‘boost::fast_pool_allocator<std::pair, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192u>::destroy(std::pair*)’
This error occurs when compiling the file gtk2_ardour/tempo_lines.cc which #includes gtk2_ardour/tempo_lines.h.
There are a couple of warnings that come up, these appear to be related to an asset function that is “has no effect”.
It looks like a problem with a C++ template that is defined in the boost library. I have tried two different versions of the boost library (1.33 and 1.37) and both give the same problem.
Note how the error appears to be deep within the C++ _Rb_tree class, but I am assuming this is just an effect of using a template defined elsewhere.
Any ideas how to fix this?
John T.
PS version 2.5 builds without error.
The full error is here:
g++ -o gtk2_ardour/tempo_lines.o -c -Woverloaded-virtual -DPACKAGE=\"gtk2_ardour\" -DLIBSIGC_DISABLE_DEPRECATED -DLOCALEDIR=\"/usr/share/locale\" -DVERSIONSTRING=\"2.7.1\" -O3 -fomit-frame-pointer -ffast-math -fstrength-reduce -pipe -DARCH_X86 -mmmx -march=i686 -msse -mfpmath=sse -DUSE_XMMINTRIN -DBUILD_SSE_OPTIMIZATIONS -Wall -DHAVE_LIBLO -Ilibs -DENABLE_NLS -DPACKAGE=\"gtk2_ardour\" -pthread -DFFT_ANALYSIS -DUSE_RUBBERBAND -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Ilibs/pbd -Ilibs/surfaces/control_protocol -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -Ilibs/sigc++2 -Ilibs/glibmm2 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -Ilibs/gtkmm2/atk -I/usr/include/glib-2.0 -Ilibs/gtkmm2/pango -Ilibs/vamp-sdk -I/usr/include/freetype2 -Igtk2_ardour -Ilibs/gtkmm2/gtk -Ilibs/libsndfile/src -Ilibs/ardour -I/usr/local/include -Ilibs/midi++2 -Ilibs/rubberband -I/usr/include/libgnomecanvas-2.0 -I/usr/include/libart-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/libxml2 -Ilibs/gtkmm2/gdk -Ilibs/libsndfile -Ilibs/libgnomecanvasmm -I. -Ilibs/gtkmm2ext gtk2_ardour/tempo_lines.cc libs/glibmm2/glibmm/containers.h: In member function ‘typename Glib::List_Iterator_Base::reference Glib::SList_Iterator::operator*() const’: libs/glibmm2/glibmm/containers.h:181: warning: statement has no effect libs/gtkmm2/gtk/gtkmm/treeview.h: In member function ‘int Gtk::TreeView::append_column_editable(const Glib::ustring&, const Gtk::TreeModelColumn&)’: libs/gtkmm2/gtk/gtkmm/treeview.h:1419: warning: statement has no effect libs/gtkmm2/gtk/gtkmm/treeview.h: In function ‘void Gtk::TreeView_Private::_connect_auto_store_editable_signal_handler(Gtk::TreeView*, Gtk::CellRenderer*, const Gtk::TreeModelColumn&)’: libs/gtkmm2/gtk/gtkmm/treeview.h:1652: warning: statement has no effect /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_tree.h: In member function ‘void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::destroy_node(std::_Rb_tree_node<_Val>*) [with _Key = double, _Val = std::pair, _KeyOfValue = std::_Select1st<std::pair >, _Compare = std::less, _Alloc = boost::fast_pool_allocator<std::pair, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192u>]’: /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_tree.h:1097: instantiated from ‘void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_erase(std::_Rb_tree_node<_Val>*) [with _Key = double, _Val = std::pair, _KeyOfValue = std::_Select1st<std::pair >, _Compare = std::less, _Alloc = boost::fast_pool_allocator<std::pair, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192u>]’ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_tree.h:571: instantiated from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::~_Rb_tree() [with _Key = double, _Val = std::pair, _KeyOfValue = std::_Select1st<std::pair >, _Compare = std::less, _Alloc = boost::fast_pool_allocator<std::pair, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192u>]’ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_map.h:92: instantiated from here /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_tree.h:389: error: no matching function for call to ‘boost::fast_pool_allocator<std::pair, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192u>::destroy(std::pair*)’ /usr/include/boost/pool/pool_alloc.hpp:210: note: candidates are: void boost::fast_pool_allocator::destroy(T*) [with T = std::pair, UserAllocator = boost::default_user_allocator_new_delete, Mutex = boost::details::pool::null_mutex, unsigned int NextSize = 8192u] /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_tree.h: In member function ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_create_node(const _Val&) [with _Key = double, _Val = std::pair, _KeyOfValue = std::_Select1st<std::pair >, _Compare = std::less, _Alloc = boost::fast_pool_allocator<std::pair, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192u>]’: /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_tree.h:794: instantiated from ‘typename std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, const _Val&) [with _Key = double, _Val = std::pair, _KeyOfValue = std::_Select1st<std::pair >, _Compare = std::less, _Alloc = boost::fast_pool_allocator<std::pair, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192u>]’ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_tree.h:883: instantiated from ‘std::pair::iterator, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::insert_unique(const _Val&) [with _Key = double, _Val = std::pair, _KeyOfValue = std::_Select1st<std::pair >, _Compare = std::less, _Alloc = boost::fast_pool_allocator<std::pair, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192u>]’ /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_map.h:360: instantiated from ‘std::pair<typename std::_Rb_tree<_Key, std::pair, std::_Select1st<std::pair >, _Compare, _Alloc>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(const std::pair&) [with _Key = double, _Tp = Gnome::Canvas::SimpleLine*, _Compare = std::less, _Alloc = boost::fast_pool_allocator<std::pair, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192u>]’ gtk2_ardour/tempo_lines.cc:52: instantiated from here /usr/lib/gcc/i486-linux-gnu/4.0.3/../../../../include/c++/4.0.3/bits/stl_tree.h:367: error: no matching function for call to ‘boost::fast_pool_allocator<std::pair, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex, 8192u>::construct(std::pair*, const std::pair&)’ /usr/include/boost/pool/pool_alloc.hpp:208: note: candidates are: void boost::fast_pool_allocator::construct(T*, const T&) [with T = std::pair, UserAllocator = boost::default_user_allocator_new_delete, Mutex = boost::details::pool::null_mutex, unsigned int NextSize = 8192u] scons: *** [gtk2_ardour/tempo_lines.o] Error 1 scons: building terminated because of errors.