[odb-users] Building odb-tests-2.2.0 on Mac with gcc-4.8.0: make errors

Boris Kolpackov boris at codesynthesis.com
Fri May 10 11:16:04 EDT 2013


Hi,

skh <skh1002 at gmail.com> writes:

> If I specify CXXFLAGS=-std=c++0x, then make bombs out with this message: 
>
> Undefined symbols for architecture x86_64:
> "odb::vector_base::vector_base(odb::vector_base&&)²,
> referenced from: odb::vector<item, std::allocator<item>
> >::vector(odb::vector<item, std::allocator<item> >&&)
> in driver.o

This is actually a bug in libodb. A workaround would be to build libodb
in the C++11 mode as well.


> I don't specify CXXFLAGS, the error message is different:
> Making all in access
> make  all-am
> 
> test-odb.cxx:2463:13: error: `move' is not a member of `std' o.p2 (std::move
> (v));

I am pretty sure you didn't run make clean before re-building in the C++98
mode and test-odb.cxx is the old file generated for C++11.
 
 
> In this case, CXXFLAGS=-std=c++0x option produces the same error message as
> before, but if I omit it, the following is generated:
> 
> make all-am
> In file included from
> ../../../odb-tests-2.2.0/common/definition/driver.cxx:19:0:
> ./test-odb.hxx:109:7:
> error: 'image_type' in 'class odb::access::composite_value_traits<timeval,
> (odb::database_id)1u>'
> does not name a type
> composite_value_traits< ::timeval, id_sqlite >::image_type time_value;

I am not sure about this one though it can also be an artifact of dirty
rebuild. Can you try these steps using clean source/build directories?


Boris



More information about the odb-users mailing list