OBConformerSearch undefined references, missing vtable

If OB is not built with Eigen these classes are missing.

On 3 May 2012 11:42, David Lonie david.lonie@kitware.com wrote:

I’m having an issue compiling the latest avogadro, and it looks like an
issue with the new OBConformerSearch class. Can anyone reproduce? This is
with a fresh checkout/build of both avogadro and openbabel.

Linking CXX shared module …/…/…/lib/forcefieldextension.so
CMakeFiles/forcefieldextension.dir/forcefieldextension.cpp.o: In function
Avogadro::ForceFieldThread::run()': /ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:541: undefined reference toOpenBabel::OBConformerSearch::OBConformerSearch()’
/ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:545:
undefined reference to
OpenBabel::OBConformerSearch::Setup(OpenBabel::OBMol const&, int, int, int, int)' /ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:546: undefined reference toOpenBabel::OBConformerSearch::Search()’
/ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:547:
undefined reference to
OpenBabel::OBConformerSearch::GetConformers(OpenBabel::OBMol&)' /ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:570: undefined reference toOpenBabel::OBConformerSearch::~OBConformerSearch()’
/ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:570:
undefined reference to OpenBabel::OBConformerSearch::~OBConformerSearch()' CMakeFiles/forcefieldextension.dir/forcefieldextension.cpp.o: In functionOpenBabel::OBEnergyConformerScore::OBEnergyConformerScore()’:
/usr/include/openbabel-2.0/openbabel/conformersearch.h:185: undefined
reference to `vtable for OpenBabel::OBEnergyConformerScore’
collect2: error: ld returned 1 exit status
distcc[6932] ERROR: compile (null) on localhost failed
make[2]: *** [lib/forcefieldextension.so] Error 1
make[1]: ***
[libavogadro/src/extensions/CMakeFiles/forcefieldextension.dir/all] Error 2
make: *** [all] Error 2

Also,
[dl@dl-worklaptop build]$ g++ --version
g++ (GCC) 4.7.0 20120414 (prerelease)

Dave


Live Security Virtual Conference
Exclusive live event will cover all the ways today’s security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/


OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Ah, that’s the problem.

So from Avogadro, we’ll need to know whether or not to expect these
features to be available. Does OpenBabel export anything that will let us
know if it was built with Eigen? Or is it just time to make Eigen a hard
dependency for OB? Eigen is hardly difficult to find these days, are there
any distros that are hold this back?

Dave

On Thu, May 3, 2012 at 9:43 AM, Noel O’Boyle baoilleach@gmail.com wrote:

If OB is not built with Eigen these classes are missing.

On 3 May 2012 11:42, David Lonie david.lonie@kitware.com wrote:

I’m having an issue compiling the latest avogadro, and it looks like an
issue with the new OBConformerSearch class. Can anyone reproduce? This is
with a fresh checkout/build of both avogadro and openbabel.

Linking CXX shared module …/…/…/lib/forcefieldextension.so
CMakeFiles/forcefieldextension.dir/forcefieldextension.cpp.o: In function
Avogadro::ForceFieldThread::run()': /ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:541: undefined reference toOpenBabel::OBConformerSearch::OBConformerSearch()’
/ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:545:
undefined reference to
OpenBabel::OBConformerSearch::Setup(OpenBabel::OBMol const&, int, int, int, int)' /ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:546: undefined reference toOpenBabel::OBConformerSearch::Search()’
/ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:547:
undefined reference to
OpenBabel::OBConformerSearch::GetConformers(OpenBabel::OBMol&)' /ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:570: undefined reference toOpenBabel::OBConformerSearch::~OBConformerSearch()’
/ssd/src/avogadro/libavogadro/src/extensions/forcefieldextension.cpp:570:
undefined reference to OpenBabel::OBConformerSearch::~OBConformerSearch()' CMakeFiles/forcefieldextension.dir/forcefieldextension.cpp.o: In functionOpenBabel::OBEnergyConformerScore::OBEnergyConformerScore()’:
/usr/include/openbabel-2.0/openbabel/conformersearch.h:185: undefined
reference to `vtable for OpenBabel::OBEnergyConformerScore’
collect2: error: ld returned 1 exit status
distcc[6932] ERROR: compile (null) on localhost failed
make[2]: *** [lib/forcefieldextension.so] Error 1
make[1]: ***
[libavogadro/src/extensions/CMakeFiles/forcefieldextension.dir/all] Error 2
make: *** [all] Error 2

Also,
[dl@dl-worklaptop build]$ g++ --version
g++ (GCC) 4.7.0 20120414 (prerelease)

Dave


Live Security Virtual Conference
Exclusive live event will cover all the ways today’s security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/


OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

So from Avogadro, we’ll need to know whether or not to expect these features to be available. Does OpenBabel export anything that will let us know if it was built with Eigen? Or is it just time to make Eigen a hard dependency for OB? Eigen is hardly difficult to find these days, are there any distros that are hold this back?

I didn’t think anything about adding OBConformerSearch to Avogadro, since Avogadro requires Eigen!

It should be in babelconfig.h, but looking at it now, I don’t see HAS_EIGEN included. We’ll need to fix that.

-Geoff

On Thu, May 3, 2012 at 10:31 AM, Geoff Hutchison
geoff.hutchison@gmail.com wrote:

So from Avogadro, we’ll need to know whether or not to expect these features to be available. Does OpenBabel export anything that will let us know if it was built with Eigen? Or is it just time to make Eigen a hard dependency for OB? Eigen is hardly difficult to find these days, are there any distros that are hold this back?

I didn’t think anything about adding OBConformerSearch to Avogadro, since Avogadro requires Eigen!

It should be in babelconfig.h, but looking at it now, I don’t see HAS_EIGEN included. We’ll need to fix that.

Should Avogadro move to using #ifdef OPENBABEL_HAS_EIGEN or something,
so that it would be disabled until OB defines this variable?

Marcus