Error compiling trunk

I just cloned the github repository and generated the Makefile using

cmake -DOPENBABEL2_INCLUDE_DIR=$HOME/local/src/openbabel-2.2/include
-DOPENBABEL2_LIBRARIES=$HOME/local/src/openbabel-2.2/src/.libs/libopenbabel.so
-DOPENBABEL2_VERSION_MET=true -DOPENBABEL_IS_NEWER_THAN_2_2_99=1
$HOME/local/src/avogadro

which proceeded successfully.
make then exits with a bunch of errors for molecule.cpp:

[ 16%] Building CXX object
libavogadro/src/CMakeFiles/avogadro.dir/molecule.cpp.o
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:101: warning: ISO
C++ forbids declaration of ‘OBDOSData’ with no type
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:101: error: invalid
use of ‘::’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:101: error:
expected ‘;’ before ‘’ token
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:102: warning: ISO
C++ forbids declaration of ‘OBElectronicTransitionData’ with no type
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:102: error: invalid
use of ‘::’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:102: error:
expected ‘;’ before ‘
’ token
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp: In constructor
‘Avogadro::MoleculePrivate::MoleculePrivate()’:
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:64: error: class
‘Avogadro::MoleculePrivate’ does not have any field named ‘obdosdata’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:64: error: class
‘Avogadro::MoleculePrivate’ does not have any field named
‘obelectronictransitiondata’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp: In member function
‘void Avogadro::Molecule::calculateGroupIndices() const’:
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:796: warning:
comparison between signed and unsigned integer expressions
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:797: warning:
comparison between signed and unsigned integer expressions
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:812: warning:
comparison between signed and unsigned integer expressions
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:813: warning:
comparison between signed and unsigned integer expressions
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp: In member function
‘double Avogadro::Molecule::energy(int) const’:
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1049: warning:
comparison between signed and unsigned integer expressions
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp: In member function
‘void Avogadro::Molecule::setEnergy(int, double)’:
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1067: warning:
comparison between signed and unsigned integer expressions
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp: In member function
‘OpenBabel::OBMol Avogadro::Molecule::OBMol() const’:
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1224: error: ‘const
class Avogadro::MoleculePrivate’ has no member named ‘obdosdata’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1225: error: ‘const
class Avogadro::MoleculePrivate’ has no member named ‘obdosdata’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1229: error: ‘const
class Avogadro::MoleculePrivate’ has no member named
‘obelectronictransitiondata’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1230: error: ‘const
class Avogadro::MoleculePrivate’ has no member named
‘obelectronictransitiondata’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp: In member function
‘bool Avogadro::Molecule::setOBMol(OpenBabel::OBMol*)’:
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1321: warning:
comparison between signed and unsigned integer expressions
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1371: error:
‘DOSData’ is not a member of ‘OpenBabel::OBGenericDataType’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1372: error:
‘OBDOSData’ is not a member of ‘OpenBabel’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1372: error:
‘dosData’ was not declared in this scope
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1372: error:
expected type-specifier
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1372: error:
expected >' /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1372: error: expected(’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1372: error:
‘OBDOSData’ is not a member of ‘OpenBabel’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1372: error:
expected primary-expression before ‘>’ token
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1372: error:
‘DOSData’ is not a member of ‘OpenBabel::OBGenericDataType’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1372: error:
expected )' before ‘;’ token /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1373: error: ‘class Avogadro::MoleculePrivate’ has no member named ‘obdosdata’ /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1377: error: ‘ElectronicTransitionData’ is not a member of ‘OpenBabel::OBGenericDataType’ /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1378: error: ‘OBElectronicTransitionData’ is not a member of ‘OpenBabel’ /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1378: error: ‘etd’ was not declared in this scope /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1379: error: expected type-specifier /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1379: error: expected>’
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1379: error:
expected (' /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1379: error: ‘OBElectronicTransitionData’ is not a member of ‘OpenBabel’ /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1379: error: expected primary-expression before ‘>’ token /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1380: error: ‘ElectronicTransitionData’ is not a member of ‘OpenBabel::OBGenericDataType’ /home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1380: error: expected)’ before ‘;’ token
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1381: error: ‘class
Avogadro::MoleculePrivate’ has no member named ‘obelectronictransitiondata’
In file included from
/home/da/local/src/avogadro/libavogadro/src/molecule.cpp:1681:
/home/da/local/build/avogadro/libavogadro/include/avogadro/primitive.h: At
global scope:
/home/da/local/build/avogadro/libavogadro/include/avogadro/primitive.h:40:
warning: ‘Avogadro::FALSE_ID’ defined but not used
make[2]: *** [libavogadro/src/CMakeFiles/avogadro.dir/molecule.cpp.o] Error
1
make[2]: *** Waiting for unfinished jobs…
make[1]: *** [libavogadro/src/CMakeFiles/avogadro.dir/all] Error 2
make: *** [all] Error 2

My bad at configuration or mistake in source? Thanks for any help.

-da

I just cloned the github repository and generated the Makefile using

cmake -DOPENBABEL2_INCLUDE_DIR=$HOME/local/src/openbabel-2.2/include -DOPENBABEL2_LIBRARIES=$HOME/local/src/openbabel-2.2/src/.libs/libopenbabel.so -DOPENBABEL2_VERSION_MET=true -DOPENBABEL_IS_NEWER_THAN_2_2_99=1 $HOME/local/src/avogadro

Then I can guarantee you are not using the latest SVN trunk of Open Babel.

ghlaptop % openbabel: grep DOS include/openbabel/generic.h

//! \class OBDOSData generic.h <openbabel/generic.h>
class OBAPI OBDOSData: public OBGenericData
//! Integrated DOS vector

Hope that helps,
-Geoff

On Tue, Mar 30, 2010 at 5:31 PM, Geoffrey Hutchison
geoff.hutchison@gmail.com wrote:

I just cloned the github repository and generated the Makefile using

cmake -DOPENBABEL2_INCLUDE_DIR=$HOME/local/src/openbabel-2.2/include
-DOPENBABEL2_LIBRARIES=$HOME/local/src/openbabel-2.2/src/.libs/libopenbabel.so
-DOPENBABEL2_VERSION_MET=true -DOPENBABEL_IS_NEWER_THAN_2_2_99=1
$HOME/local/src/avogadro

Then I can guarantee you are not using the latest SVN trunk of Open Babel.

Yes, if you tell Avogadro you are using trunk OpenBabel the
compilation will fail spectacularly :slight_smile: Try the second suggestion in
my earlier email (the lines that you should remove are the last block
of cmake/modules/FindOpenBabel2.cmake). Remove them, delete
CMakeCache.txt, and re-run cmake and avogadro should compile.

Dave

Aha. After your message I did try the latest OpenBabel trunk, but I ran
into some errors and just compiled using my distribution’s openbabel
(2.2.3).

Thanks again.

-da

On Tue, Mar 30, 2010 at 14:52, David Lonie loniedavid@gmail.com wrote:

On Tue, Mar 30, 2010 at 5:31 PM, Geoffrey Hutchison
geoff.hutchison@gmail.com wrote:

I just cloned the github repository and generated the Makefile using

cmake -DOPENBABEL2_INCLUDE_DIR=$HOME/local/src/openbabel-2.2/include

-DOPENBABEL2_LIBRARIES=$HOME/local/src/openbabel-2.2/src/.libs/libopenbabel.so

-DOPENBABEL2_VERSION_MET=true -DOPENBABEL_IS_NEWER_THAN_2_2_99=1
$HOME/local/src/avogadro

Then I can guarantee you are not using the latest SVN trunk of Open
Babel.

Yes, if you tell Avogadro you are using trunk OpenBabel the
compilation will fail spectacularly :slight_smile: Try the second suggestion in
my earlier email (the lines that you should remove are the last block
of cmake/modules/FindOpenBabel2.cmake). Remove them, delete
CMakeCache.txt, and re-run cmake and avogadro should compile.

Dave