|
Boost : |
Subject: Re: [boost] Serialise on Mac OSX 10.8, XCode and GCC
From: Tim Burgess (tim_at_[hidden])
Date: 2013-03-26 12:00:52
Hi,
I built Boost with the Darwin toolset, so that uses GCC (how can I check
which linker is being used by the Boost build system?). My application
project is linking using libc++.
Assuming I've got a linker mismatch, how can I either get Boost to link
using libc++, or get XCode to link using stdlibc?
Best wishes.
Tim Burgess
-----Original Message-----
From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Louis Dionne
Sent: 26 March 2013 15:05
To: boost_at_[hidden]
Subject: Re: [boost] Serialise on Mac OSX 10.8, XCode and GCC
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
_______________________________________________
Unsubscribe & other changes:
http://lists.boost.org/mailman/listinfo.cgi/boost
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk