[odb-users] clang and libc++

Daniel James danielpeterjames at gmail.com
Thu Apr 26 11:35:01 EDT 2012

On 26 April 2012 15:51, Boris Kolpackov <boris at codesynthesis.com> wrote:
> Hi Daniel,
> Daniel James <danielpeterjames at gmail.com> writes:
>> I'm running into a problem when using the binary MacOS ODB compiler
>> and libodb*.dylib compiled with clang++ and linked to libc++.
>> Is this supported?
> We haven't tried this configuration ourselves yet, but it should work,
> provided libc++ is complete enough.
>> Here's an example of the link error I'm getting:
>>   "odb::sqlite::default_value_traits<std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> >,
>> (odb::sqlite::database_type_id)2>::set_image(odb::details::basic_buffer<char>&,
>> unsigned long&, bool&, std::__1::basic_string<char,
>> std::__1::char_traits<char>, std::__1::allocator<char> > const&)",
>> referenced from:
>>       odb::access::object_traits<person>::init(odb::access::object_traits<person>::image_type&,
>> person const&, odb::sqlite::statement_kind) in person-odb.o
> This looks like you are not linking to libodb-sqlite-*.dylib. You need
> to build and link to this library if you are using SQLite.

Indeed, my libodb-sqlite-1.8.0.dylib was causing problems. It seems I
had managed to compile it with libstdc++ symbols rather than libc++.

I recompiled more carefully and now things seem to be working :)

For info, I'm linking to libc++.1.dylib with:

$ clang --version
Apple clang version 3.1 (tags/Apple/clang-318.0.58) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix

I'm now looking forward to the odb-1.9.0 release!



More information about the odb-users mailing list