Subject: Re: [boost] Serialise on Mac OSX 10.8, XCode and GCC
From: Louis Dionne (louis.dionne92_at_[hidden])
Date: 2013-03-26 11:04:58


Tim Burgess <tim <at> raisedbar.net> writes:

>
> Hi,
>
> I have an XCode c++ project that uses the static serialisation library (as
> well as FileSystem, IOStream and System). The project started out on XCode
> 3.6 on Mac OSX 10.6, where it successfully built and ran using Boost 1_49_0,
> built against Apple's 10.6 SDK.
 [...]

Hi,

This is really just a guess, but:

Did you build Boost using clang with libc++? If so, and if you are building
your project with gcc and stdlibc++, that could be the source of the problem.

IIRC, libc++ broke the ABI compatibility with stdlibc++. To turn potential
runtime errors into link-time errors, they used inline namespaces. For
example, symbols inside the std namespace with libc++ are of the form
    std::__1::symbol

while with stdlibc++ they are of the form
    std::symbol

When linking with a library built with a different runtime, the linker
will fail to find the symbols, turning a nasty runtime error into a link failure.
If I were you, I would look at the symbols exported by Boost. If they don't
match those referenced by your project, that could be it.

Best of luck,

Louis