I am attempting to build, from source, the C++ lib. I have just compiled the latest HDF5 1.8.8 lib, on my Ubuntu machine. Compiling these MSongDB C++ libs fails for me, though. There are a lot of undefined references.
I did have to modify the Makefile to link to my HDF5 lib includes. So, my Makefile looks like this:
# compiler
CC=g++
# options passed to the compiler
CFLAGS=-c -Wall -std=c++0x -O2
all: hdf5_getters.o hdf5_display.o
$(CC) -L/usr/local/hdf5/lib -lhdf5 -lhdf5_cpp hdf5_display.o hdf5_getters.o -o hdf5_display
hdf5_display.o:
$(CC) $(CFLAGS) -I/usr/local/hdf5/include -c hdf5_display.cc
hdf5_getters.o:
$(CC) $(CFLAGS) -I/usr/local/hdf5/include -c hdf5_getters.cc
clean:
rm -rf *.o hdf5_display
λ ~/cpp-libs/hdf5-wrapper/ make
g++ -c -Wall -std=c++0x -O2 -I/usr/local/hdf5/include -c hdf5_getters.cc
g++ -c -Wall -std=c++0x -O2 -I/usr/local/hdf5/include -c hdf5_display.cc
g++ -L/usr/local/hdf5/lib -lhdf5 -lhdf5_cpp hdf5_display.o hdf5_getters.o -o hdf5_display
hdf5_getters.o: In function `HDF5Getters::HDF5Getters(char const*)':
hdf5_getters.cc:(.text+0x21): undefined reference to `H5::Group::Group()'
hdf5_getters.cc:(.text+0x29): undefined reference to `H5::Group::Group()'
hdf5_getters.cc:(.text+0x35): undefined reference to `H5::Group::Group()'
hdf5_getters.cc:(.text+0x5e): undefined reference to `H5check_version'
hdf5_getters.cc:(.text+0x73): undefined reference to `H5::FileAccPropList::DEFAULT'
hdf5_getters.cc:(.text+0x78): undefined reference to `H5::FileCreatPropList::DEFAULT'
hdf5_getters.cc:(.text+0x85): undefined reference to `H5::H5File::H5File(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, H5::FileCreatPropList const&, H5::FileAccPropList const&)'
hdf5_getters.cc:(.text+0xe7): undefined reference to `H5::CommonFG::openGroup(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
hdf5_getters.cc:(.text+0xf2): undefined reference to `H5::IdComponent::operator=(H5::IdComponent const&)'
hdf5_getters.cc:(.text+0x101): undefined reference to `H5::Group::~Group()'
hdf5_getters.cc:(.text+0x11a): undefined reference to `H5::CommonFG::openGroup(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
hdf5_getters.cc:(.text+0x127): undefined reference to `H5::IdComponent::operator=(H5::IdComponent const&)'
hdf5_getters.cc:(.text+0x138): undefined reference to `H5::Group::~Group()'
hdf5_getters.cc:(.text+0x151): undefined reference to `H5::CommonFG::openGroup(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
hdf5_getters.cc:(.text+0x15e): undefined reference to `H5::IdComponent::operator=(H5::IdComponent const&)'
hdf5_getters.cc:(.text+0x16f): undefined reference to `H5::Group::~Group()'
hdf5_getters.cc:(.text+0x290): undefined reference to `H5::Group::~Group()'
hdf5_getters.cc:(.text+0x2c6): undefined reference to `H5::Group::~Group()'
hdf5_getters.cc:(.text+0x2ce): undefined reference to `H5::Group::~Group()'
hdf5_getters.cc:(.text+0x2d6): undefined reference to `H5::Group::~Group()'
hdf5_getters.o:hdf5_getters.cc:(.text+0x2eb): more undefined references to `H5::Group::~Group()' follow
hdf5_getters.o: In function `HDF5Getters::get_member_float(H5::Group const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
hdf5_getters.cc:(.text+0x40d): undefined reference to `H5::CompType::CompType(unsigned long)'
hdf5_getters.cc:(.text+0x41c): undefined reference to `H5::PredType::NATIVE_FLOAT'
hdf5_getters.cc:(.text+0x423): undefined reference to `H5::CompType::insertMember(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, H5::DataType const&) const'
hdf5_getters.cc:(.text+0x436): undefined reference to `H5::CommonFG::openDataSet(char const*) const'
hdf5_getters.cc:(.text+0x43c): undefined reference to `H5::DataSpace::ALL'
hdf5_getters.cc:(.text+0x451): undefined reference to `H5::DSetMemXferPropList::DEFAULT'
hdf5_getters.cc:(.text+0x461): undefined reference to `H5::DataSet::read(void*, H5::DataType const&, H5::DataSpace const&, H5::DataSpace const&, H5::DSetMemXferPropList const&) const'
hdf5_getters.cc:(.text+0x477): undefined reference to `H5::DataSet::~DataSet()'
hdf5_getters.cc:(.text+0x481): undefined reference to `H5::CompType::~CompType()'
hdf5_getters.cc:(.text+0x4ce): undefined reference to `H5::DataSet::~DataSet()'
hdf5_getters.cc:(.text+0x4d8): undefined reference to `H5::CompType::~CompType()'
hdf5_getters.o: In function `HDF5Getters::get_member_int(H5::Group const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
hdf5_getters.cc:(.text+0x5bd): undefined reference to `H5::CompType::CompType(unsigned long)'
hdf5_getters.cc:(.text+0x5cc): undefined reference to `H5::PredType::NATIVE_INT'
hdf5_getters.cc:(.text+0x5d3): undefined reference to `H5::CompType::insertMember(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, H5::DataType const&) const'
hdf5_getters.cc:(.text+0x5e4): undefined reference to `H5::CommonFG::openDataSet(char const*) const'
hdf5_getters.cc:(.text+0x5ea): undefined reference to `H5::DataSpace::ALL'
hdf5_getters.cc:(.text+0x5fa): undefined reference to `H5::DSetMemXferPropList::DEFAULT'
hdf5_getters.cc:(.text+0x60d): undefined reference to `H5::DataSet::read(void*, H5::DataType const&, H5::DataSpace const&, H5::DataSpace const&, H5::DSetMemXferPropList const&) const'
hdf5_getters.cc:(.text+0x619): undefined reference to `H5::DataSet::~DataSet()'
hdf5_getters.cc:(.text+0x623): undefined reference to `H5::CompType::~CompType()'
hdf5_getters.cc:(.text+0x66a): undefined reference to `H5::DataSet::~DataSet()'
hdf5_getters.cc:(.text+0x674): undefined reference to `H5::CompType::~CompType()'
hdf5_getters.o: In function `HDF5Getters::~HDF5Getters()':
hdf5_getters.cc:(.text+0x3a2): undefined reference to `H5::Group::~Group()'
collect2: ld returned 1 exit status
make: *** [all] Error 1