Compilation with OB trunk fails

Hello, David!
I’ve merged your master branch, and now compilation of Avogadro with -DOPENBABEL_IS_NEWER_THAN_2_2_99=true fails on linking of spectraextension.so
Error message:
CMakeFiles/spectraextension.dir/spectratype_dos.cpp.o: In function ~DOSSpectra': /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_dos.cpp:71: undefined reference tovtable for Avogadro::DOSSpectra’
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_dos.cpp:71: undefined reference to vtable for Avogadro::DOSSpectra' /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_dos.cpp:71: undefined reference tovtable for Avogadro::DOSSpectra’
CMakeFiles/spectraextension.dir/spectratype_dos.cpp.o: In function DOSSpectra': /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_dos.cpp:38: undefined reference tovtable for Avogadro::DOSSpectra’
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_dos.cpp:38: undefined reference to vtable for Avogadro::DOSSpectra' CMakeFiles/spectraextension.dir/spectratype_dos.cpp.o: In functionAvogadro::DOSSpectra::tr(char const*, char const*)’:
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_dos.h:38: undefined reference to Avogadro::DOSSpectra::staticMetaObject' /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_dos.h:38: undefined reference toAvogadro::DOSSpectra::staticMetaObject’
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_dos.h:38: undefined reference to Avogadro::DOSSpectra::staticMetaObject' /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_dos.h:38: undefined reference toAvogadro::DOSSpectra::staticMetaObject’
CMakeFiles/spectraextension.dir/spectratype_uv.cpp.o: In function Avogadro::UVSpectra::tr(char const*, char const*)': /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_uv.h:38: undefined reference toAvogadro::UVSpectra::staticMetaObject’
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_uv.h:38: undefined reference to Avogadro::UVSpectra::staticMetaObject' CMakeFiles/spectraextension.dir/spectratype_uv.cpp.o: In function~UVSpectra’:
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_uv.cpp:61: undefined reference to vtable for Avogadro::UVSpectra' /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_uv.cpp:61: undefined reference tovtable for Avogadro::UVSpectra’
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_uv.cpp:61: undefined reference to vtable for Avogadro::UVSpectra' CMakeFiles/spectraextension.dir/spectratype_uv.cpp.o: In functionUVSpectra’:
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_uv.cpp:38: undefined reference to vtable for Avogadro::UVSpectra' /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_uv.cpp:38: undefined reference tovtable for Avogadro::UVSpectra’
CMakeFiles/spectraextension.dir/spectratype_cd.cpp.o: In function Avogadro::CDSpectra::tr(char const*, char const*)': /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_cd.h:38: undefined reference toAvogadro::CDSpectra::staticMetaObject’
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_cd.h:38: undefined reference to Avogadro::CDSpectra::staticMetaObject' CMakeFiles/spectraextension.dir/spectratype_cd.cpp.o: In function~CDSpectra’:
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_cd.cpp:66: undefined reference to vtable for Avogadro::CDSpectra' /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_cd.cpp:66: undefined reference tovtable for Avogadro::CDSpectra’
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_cd.cpp:66: undefined reference to vtable for Avogadro::CDSpectra' CMakeFiles/spectraextension.dir/spectratype_cd.cpp.o: In functionCDSpectra’:
/mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_cd.cpp:38: undefined reference to vtable for Avogadro::CDSpectra' /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_cd.cpp:38: undefined reference tovtable for Avogadro::CDSpectra’
CMakeFiles/spectraextension.dir/spectratype_cd.cpp.o: In function Avogadro::CDSpectra::rotatoryTypeChanged(QString const&)': /mnt/storage/git/avogadro/avogadro/libavogadro/src/extensions/spectratype_cd.cpp:212: undefined reference toAvogadro::CDSpectra::plotDataChanged()'
collect2: ld returned 1 exit status

Regards,
Konstantin

Hi Konstantin,

On Sat, Jan 30, 2010 at 10:22 AM, Konstantin Tokarev annulen@yandex.ru wrote:

Hello, David!
I’ve merged your master branch, and now compilation of Avogadro with -DOPENBABEL_IS_NEWER_THAN_2_2_99=true fails on linking of spectraextension.so

What compiler are you using? I think I know what’s wrong, but I
haven’t seen this problem with GCC 4.2.2. I’ll push a possible fix in
a moment.

Dave

On Sat, Jan 30, 2010 at 10:41 AM, David Lonie loniedavid@gmail.com wrote:

Hi Konstantin,

On Sat, Jan 30, 2010 at 10:22 AM, Konstantin Tokarev annulen@yandex.ru wrote:

Hello, David!
I’ve merged your master branch, and now compilation of Avogadro with -DOPENBABEL_IS_NEWER_THAN_2_2_99=true fails on linking of spectraextension.so

What compiler are you using? I think I know what’s wrong, but I
haven’t seen this problem with GCC 4.2.2. I’ll push a possible fix in
a moment.

Hrm, I hate vtable errors – they make no sense to me. This works for
me here, so I can’t really debug it at the moment. I thought I knew
what the problem was, but I didn’t make that mistake here. Everything
looks to be in order. Odd that the non-OB2.2.99 spectratypes are
compiling ok, all the virtual declarations are identical in them…

Dave

On Sun, Jan 31, 2010 at 5:17 AM, Konstantin Tokarev annulen@yandex.ru wrote:

It seem very strange, but on another PC with Ubuntu and gcc 4.3.3 all build fine (yesterday I’ve tried to build it on Debian 5). Earlier I built Avogadro on Debian many times with the same gcc and all times successfully

Strange. Maybe some stale build files were causing some
trouble…anyway, I’m glad it’s working now!

Dave