guruofquality / gras

GRAS: The GNU Radio Advanced Scheduler
https://github.com/guruofquality/gras/wiki
Other
23 stars 11 forks source link

OSX linker issue Element/vtable/undef symbol #47

Closed guruofquality closed 11 years ago

guruofquality commented 11 years ago

[ 14%] Built target pygen_gruel_src_python_f065d [ 38%] Built target gnuradio-core [ 38%] Built target gnuradio-config-info [ 39%] Built target gr_core_rstest Linking CXX shared library libtest-gnuradio-core.dylib Undefined symbols for architecture x86_64: "gras::Element::shared_to_element()", referenced from: gras::Element::Element(boost::shared_ptr const&)in qa_gr_hier_block2_derived.cc.o gras::Element::Element(boost::shared_ptr const&)in qa_gr_hier_block2_derived.cc.o gras::Element::Element(boost::shared_ptr const&)in qa_gr_top_block.cc.o "gras::Element::set_input_signature(gras::IOSignature const&)", referenced from: gr_make_hier_block2(std::basic_string<char, std::char_traits, std::allocator > const&, gras::IOSignature, gras::IOSignature)in qa_gr_hier_block2.cc.o gr_derived_block::gr_derived_block()in qa_gr_hier_block2_derived.cc.o "gras::Element::set_output_signature(gras::IOSignature const&)", referenced from: gr_make_hier_block2(std::basic_string<char, std::char_traits, std::allocator > const&, gras::IOSignature, gras::IOSignature)in qa_gr_hier_block2.cc.o gr_derived_block::gr_derived_block()in qa_gr_hier_block2_derived.cc.o "gras::TopBlock::set_max_noutput_items(int)", referenced from: qa_gr_top_block::t8_reconfig_max_noutputs_per_block() in qa_gr_top_block.cc.o qa_gr_top_block::t6_reconfig_max_noutputs() in qa_gr_top_block.cc.o "gras::TopBlock::run()", referenced from: qa_gr_hier_block2_derived::test_1() in qa_gr_hier_block2_derived.cc.o qa_gr_top_block::t1_run() in qa_gr_top_block.cc.o "gras::TopBlock::stop()", referenced from: vtable for gr_top_blockin qa_gr_hier_block2_derived.cc.o vtable for gr_top_blockin qa_gr_top_block.cc.o "gras::TopBlock::wait(double)", referenced from: vtable for gr_top_blockin qa_gr_hier_block2_derived.cc.o vtable for gr_top_blockin qa_gr_top_block.cc.o "gras::TopBlock::wait()", referenced from: vtable for gr_top_blockin qa_gr_hier_block2_derived.cc.o vtable for gr_top_blockin qa_gr_top_block.cc.o "gras::TopBlock::start(unsigned long)", referenced from: qa_gr_top_block::t10_reconfig_max_output_buffer() in qa_gr_top_block.cc.o qa_gr_top_block::t5_max_noutputs() in qa_gr_top_block.cc.o qa_gr_top_block::t8_reconfig_max_noutputs_per_block() in qa_gr_top_block.cc.o qa_gr_top_block::t6_reconfig_max_noutputs() in qa_gr_top_block.cc.o "gras::TopBlock::start()", referenced from: vtable for gr_top_blockin qa_gr_hier_block2_derived.cc.o vtable for gr_top_blockin qa_gr_top_block.cc.o "gras::TopBlock::commit()", referenced from: vtable for gr_top_blockin qa_gr_hier_block2_derived.cc.o vtable for gr_top_blockin qa_gr_top_block.cc.o "gras::TopBlock::TopBlock(std::basic_string<char, std::char_traits, std::allocator > const&)", referenced from: qa_gr_hier_block2_derived::test_1() in qa_gr_hier_block2_derived.cc.o qa_gr_top_block::t0() in qa_gr_top_block.cc.o qa_gr_top_block::t10_reconfig_max_output_buffer() in qa_gr_top_block.cc.o qa_gr_top_block::t9_max_output_buffer() in qa_gr_top_block.cc.o qa_gr_top_block::t5_max_noutputs() in qa_gr_top_block.cc.o qa_gr_top_block::t4_reconfigure() in qa_gr_top_block.cc.o qa_gr_top_block::t3_lock_unlock() in qa_gr_top_block.cc.o ... "gras::HierBlock::disconnect(gras::Element const&, unsigned long, gras::Element const&, unsigned long)", referenced from: qa_gr_top_block::t10_reconfig_max_output_buffer() in qa_gr_top_block.cc.o qa_gr_top_block::t4_reconfigure() in qa_gr_top_block.cc.o qa_gr_top_block::t8_reconfig_max_noutputs_per_block() in qa_gr_top_block.cc.o qa_gr_top_block::t6_reconfig_max_noutputs() in qa_gr_top_block.cc.o "gras::HierBlock::commit()", referenced from: vtable for gr_hier_block2in qa_gr_hier_block2.cc.o vtable for gr_hier_block2in qa_gr_hier_block2_derived.cc.o vtable for gr_derived_blockin qa_gr_hier_block2_derived.cc.o "gras::HierBlock::connect(gras::Element const&, unsigned long, gras::Element const&, unsigned long)", referenced from: gr_derived_block::gr_derived_block()in qa_gr_hier_block2_derived.cc.o qa_gr_hier_block2_derived::test_1() in qa_gr_hier_block2_derived.cc.o qa_gr_top_block::t10_reconfig_max_output_buffer() in qa_gr_top_block.cc.o qa_gr_top_block::t9_max_output_buffer() in qa_gr_top_block.cc.o qa_gr_top_block::t5_max_noutputs() in qa_gr_top_block.cc.o qa_gr_top_block::t4_reconfigure() in qa_gr_top_block.cc.o qa_gr_top_block::t3_lock_unlock() in qa_gr_top_block.cc.o ... "gras::HierBlock::HierBlock(std::basic_string<char, std::char_traits, std::allocator > const&)", referenced from: gr_make_hier_block2(std::basic_string<char, std::char_traits, std::allocator > const&, gras::IOSignature, gras::IOSignature)in qa_gr_hier_block2.cc.o gr_derived_block::gr_derived_block()in qa_gr_hier_block2_derived.cc.o "gras::Element::input_signature() const", referenced from: qa_gr_block::t0() in qa_gr_block.cc.o qa_gr_block::t1() in qa_gr_block.cc.o qa_gr_hier_block2::test_make() in qa_gr_hier_block2.cc.o "gras::Element::output_signature() const", referenced from: qa_gr_block::t0() in qa_gr_block.cc.o qa_gr_block::t1() in qa_gr_block.cc.o qa_gr_hier_block2::test_make() in qa_gr_hier_block2.cc.o "gras::Element::name() const", referenced from: qa_gr_block::t0() in qa_gr_block.cc.o qa_gr_block::t1() in qa_gr_block.cc.o qa_gr_hier_block2::test_make() in qa_gr_hier_block2.cc.o "typeinfo for gras::TopBlock", referenced from: typeinfo for gr_top_blockin qa_gr_hier_block2_derived.cc.o typeinfo for gr_top_blockin qa_gr_top_block.cc.o "typeinfo for gras::HierBlock", referenced from: typeinfo for gr_hier_block2in qa_gr_hier_block2.cc.o typeinfo for gr_hier_block2in qa_gr_hier_block2_derived.cc.o "vtable for gras::HierBlock", referenced from: boost::detail::sp_counted_impl_p::dispose() in qa_gr_hier_block2.cc.o boost::detail::shared_count::shared_count(gr_hierblock2)in qa_gr_hier_block2.cc.o gr_make_hier_block2(std::basic_string<char, std::char_traits, std::allocator > const&, gras::IOSignature, gras::IOSignature)in qa_gr_hier_block2.cc.o gr_derived_block::~gr_derived_block()in qa_gr_hier_block2_derived.cc.o gr_derived_block::~gr_derived_block()in qa_gr_hier_block2_derived.cc.o gr_derived_block::gr_derived_block()in qa_gr_hier_block2_derived.cc.o boost::detail::sp_counted_impl_p::dispose() in qa_gr_hier_block2_derived.cc.o ... NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. ld: symbol(s) not found for architecture x8664 collect2: ld returned 1 exit status make[2]: ** [gnuradio/gnuradio-core/src/lib/libtest-gnuradio-core.dylib] Error 1 make[1]: * [gnuradio/gnuradio-core/src/lib/CMakeFiles/test-gnuradio-core.dir/all] Error 2 make: * [all] Error 2

guruofquality commented 11 years ago

Wow, thats a lot of hopefully cascaded errors.

I am kind of hoping that its just missing the inline. Can you try this? http://pastebin.com/qGkq0C4n

If not that, maybe the errors come from false matching of that templated constructor. Then somehow it compiles, but turns out to result in a linker error...

guruofquality commented 11 years ago

b59f49f3ab58d377b9fb8a7a7d9ed5b459208d5f