[odb-users] error: redefinition of ‘bool odb::create_schema

Boris Kolpackov boris at codesynthesis.com
Wed Sep 3 03:35:47 EDT 2014


Hi Willem,

WA van Doesburg <wvandoesburg at gmail.com> writes:

> I’ve checked the generated code. The function signature is indeed
> 
> static bool
> create_schema (...)
> 
> My platform is Ubuntu 12.04 and my compiler version is:
> c++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

Ok, you are using a fairly recent GCC. I searched for any issues/bugs
with static functions but there doesn't seem to be any. So this is
probably not the compiler.

Can you try/do the following for me:

1. Add these three lines into one of the generated -odb.cxx files that
   cause the conflict and try to build (don't re-build so that that
   there is no run of the ODB compiler since that would overwrite your
   modifications). 

   Add them just before the create_schema() function:

#ifdef static
#error static is defined as a macro
#endif

2. Can you show me the list of headers you are compiling with ODB. That
   is the ${ODB_HEADERS} expansion in this:

   odb -d sqlite -DDATABASE_SQLITE -I../libs/libodb-boost-2.3.0 -o .. \
--generate-schema --generate-query --profile boost ${ODB_HEADERS}

   Or, better yet, show the actual ODB command line that gets executed.

3. Can you show the linker command line and the complete error listing?

Thanks,
Boris



More information about the odb-users mailing list