balint256/gr-baz

Linking Error libgnuradio-baz.so: undefined reference to

boxxeronfly opened this issue · 2 comments

SVN: Checked out revision 719.
GNU Radio Version: debian release: 3.6.0-1
$ sh bootstrap
...
$ ./configure
...
Configured gr-baz release 3.3git for build.
$ make -e
libtool: link: warning: -version-info/-version-number' is ignored for convenience libraries libtool: link: ar cru .libs/libgnuradio-baz-qa.a .libs/qa_baz.o libtool: link: ranlib .libs/libgnuradio-baz-qa.a libtool: link: ( cd ".libs" && rm -f "libgnuradio-baz-qa.la" && ln -s "../libgnuradio-baz-qa.la" "libgnuradio-baz-qa.la" ) g++ -DHAVE_CONFIG_H -I. -I.. -I/tmp/crap/gnuradio/gr-baz/include -I/usr/include/gnuradio -I/usr/include/gnuradio/swig -I/usr/include/gruel/swig -I/usr/include/python2.7 -g -O2 -g -O2 -MT test_all.o -MD -MP -MF .deps/test_all.Tpo -c -o test_all.o test_all.cc mv -f .deps/test_all.Tpo .deps/test_all.Po /bin/bash ../libtool --tag=CXX --mode=link g++ -g -O2 -g -O2 -o test_all test_all.o libgnuradio-baz-qa.la libtool: link: g++ -g -O2 -g -O2 -o .libs/test_all test_all.o ./.libs/libgnuradio-baz-qa.a /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so -lusb-1.0 /usr/lib/libcppunit.so -ldl /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference totypeinfo for gr_block'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to gr_msg_accepter::post(boost::intrusive_ptr<pmt::pmt_base>)' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference totypeinfo for gr_sync_block'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to gr_make_io_signature(int, int, int)' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference toboost::detail::get_current_thread_data()'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to gr_block::set_relative_rate(double)' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference toboost::this_thread::interruption_point()'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to boost::this_thread::get_id()' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference togr_block::~gr_block()'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to gnuradio::detail::sptr_magic::fetch_initial_sptr(gr_basic_block*)' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference togr_block::start()'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to boost::thread::thread()' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference togr_block::fixed_rate_noutput_to_ninput(int)'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to gr_block::forecast(int, std::vector<int, std::allocator<int> >&)' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference togr_make_io_signature2(int, int, int, int)'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to vtable for boost::detail::thread_data_base' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference toboost::detail::thread_data_base::~thread_data_base()'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to gr_sync_block::forecast(int, std::vector<int, std::allocator<int> >&)' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference toboost::thread::join()'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to gr_block::gr_block(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::shared_ptr<gr_io_signature>, boost::shared_ptr<gr_io_signature>)' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference togr_sync_block::general_work(int, std::vector<int, std::allocator >&, std::vector<void const*, std::allocator<void const*> >&, std::vector<void*, std::allocator<void*> >&)'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to vtable for gr_sync_block' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference togr_sync_block::fixed_rate_ninput_to_noutput(int)'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to gr_block::fixed_rate_ninput_to_noutput(int)' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference toboost::thread::~thread()'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to gr_block::stop()' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference togr_block::set_output_multiple(int)'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to gr_block::consume_each(int)' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference togr_sync_block::gr_sync_block(std::basic_string<char, std::char_traits, std::allocator > const&, boost::shared_ptr<gr_io_signature>, boost::shared_ptr<gr_io_signature>)'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to typeinfo for gr_basic_block' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference togr_sync_block::fixed_rate_noutput_to_ninput(int)'
/tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference to typeinfo for boost::detail::thread_data_base' /tmp/crap/gnuradio/gr-baz/lib/.libs/libgnuradio-baz.so: undefined reference toboost::thread::start_thread()'
collect2: ld returned 1 exit status
make[2]: *** [test_all] Error 1
make[2]: Leaving directory /tmp/crap/gnuradio/gr-baz/lib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory/tmp/crap/gnuradio/gr-baz'
make: *** [all] Error 2

This problem went away for me after I installed a couple of libraries that auto* apparently don't check for. In my case, libfftw3-dev and libgsl0-dev fixed it. If those don't get it, check for libgruel, various libboost parts, libvolk, liborc. I sorta shotgunned this, so this solution is approximate. I may have also uncommented AX_BOOST_BASE in configure.ac.

Thanks for providing your suggested fixes, hopefully this was a rate event. I've switched to CMake now, so hopefully it will help avoid such issues.