Error on filter_ssynth
A processing system for 3D triangular meshes
Brought to you by:
cignoni,
granzuglia
On loading meshlab get this message:
"Cannot load library /home/paco/3D/MeshLab/svn/meshlab-code/meshlab/src/distrib/plugins/libfilter_ssynth.so: (/home/paco/3D/MeshLab/svn/meshlab-code/meshlab/src/distrib/plugins/libfilter_ssynth.so: undefined symbol: _ZTIN14StructureSynth5Model9Rendering16TemplateRendererE)"
filter_ssynth compiled Ok
external/structuresynth compiled Ok.
I get this too; just built from MeshLabSrc_AllInc_v133.tgz; had to disable some plugins; generally seems to work though.
FWIW the 'unmangle' of this is:
typeinfo for StructureSynth::Model::Rendering::TemplateRenderer
Likely the compiler is not emitting the typeinfo in the 'core' code, since it's not needed (this can happen if all the virtual functions are inline and never invoked in that body of code) - but then one of the plugins needs it. So you need to force the typeinfo to exist in the main code somehow. Maybe just have a dummy function which invokes one of the virtual methods, or declare a dummy global variable containing a pointer to that typeinfo.
If the class is only used in the plugin (and not in the core) it's better to force the typeinfo to exist in the build of the .so for the plugin (this seems likely to be the case based on the symbol dumps below).
This may be helpful http://stackoverflow.com/questions/307352/g-undefined-reference-to-typeinfo
Some more info:
(1) typeinfo symbols defined in meshlab (the executable):
nm meshlab | grep _ZTIN |c++filt
00000000004f58f0 V typeinfo for vcg::SphereMode
00000000004f5a40 V typeinfo for vcg::CylinderMode
00000000004f58b0 V typeinfo for vcg::InactiveMode
00000000004f0530 V typeinfo for vcg::SimpleTempData<vcg::face::vector_ocf<CFaceO>, float>
00000000004f05a0 V typeinfo for vcg::SimpleTempData<vcg::face::vector_ocf<CFaceO>, vcg::Point3<float> >
00000000004f0460 V typeinfo for vcg::SimpleTempData<vcg::vertex::vector_ocf<CVertexO>, float>
00000000004f04c0 V typeinfo for vcg::SimpleTempData<vcg::vertex::vector_ocf<CVertexO>, vcg::Point3<float> >
00000000004f5b20 V typeinfo for vcg::NavigatorWasdMode
00000000004f0370 V typeinfo for vcg::SimpleTempDataBase
00000000004f5950 V typeinfo for vcg::ZMode
00000000004f5920 V typeinfo for vcg::PanMode
00000000004f5aa0 V typeinfo for vcg::AreaMode
00000000004f59c0 V typeinfo for vcg::AxisMode
00000000004f5a70 V typeinfo for vcg::PathMode
00000000004f5a00 V typeinfo for vcg::PlaneMode
00000000004f5ae0 V typeinfo for vcg::PolarMode
00000000004f5990 V typeinfo for vcg::ScaleMode
00000000004f5880 V typeinfo for vcg::TrackMode
(2) typeinfo symbols defined in libcommon.so:
nm libcommon.so | grep _ZTIN |c++filt
0000000000354e68 d DW.ref._ZTIN3vcg25MissingComponentExceptionE
000000000034cc60 V typeinfo for vcg::SimpleTempData<vcg::vertex::vector_ocf<CVertexO>, std::vector<vcg::tri::io::Correspondence, std::allocator<vcg::tri::io::Correspondence=""> > >
000000000034cc50 V typeinfo for vcg::SimpleTempDataBase
000000000034c680 V typeinfo for vcg::MissingComponentException
000000000034d0b0 V typeinfo for vcg::Attribute<std::pair<float, float=""> >
(3) typeinfo symbols defined/referenced in all the plugins:
nm /.so | grep _ZTIN14 |c++filt
000000000027ae40 d DW.ref._ZTIN14StructureSynth6Parser10ParseErrorE
U typeinfo for StructureSynth::Model::Rendering::TemplateRenderer
0000000000279550 V typeinfo for StructureSynth::Parser::ParseError
00000000002797a0 V typeinfo for VrmlTranslator::KeywordMap::Elem
00000000002797b0 V typeinfo for VrmlTranslator::KeywordMap
0000000000279770 V typeinfo for VrmlTranslator::UTF8Buffer
0000000000279790 V typeinfo for VrmlTranslator::StartStates
0000000000279760 V typeinfo for VrmlTranslator::Buffer
000000000026ea00 V typeinfo for VrmlTranslator::KeywordMap::Elem
000000000026ea10 V typeinfo for VrmlTranslator::KeywordMap
000000000026e9d0 V typeinfo for VrmlTranslator::UTF8Buffer
000000000026e9f0 V typeinfo for VrmlTranslator::StartStates
000000000026e9c0 V typeinfo for VrmlTranslator::Buffer
So this one (with U) is the only one which needs an external resolution.