|
Boost Users : |
Subject: Re: [Boost-users] [boost] Going insane trying to build boost for android
From: Robert Dailey (rcdailey.lists_at_[hidden])
Date: 2017-03-28 13:39:13
On Tue, Mar 28, 2017 at 3:10 AM, John Maddock <jz.maddock_at_[hidden]> wrote:
>
> Right, but that built with g++ not clang++.
Doh!!! I didn't even notice this. Crap. I'll fix it when I get home
and try again.
> I don't think Boost.Build does anything "different" here: it basically just
> invokes clang++.
>
> Note that clang is not particular "bright" in the way it creates it's
> wrapper headers around <cstdlib> etc. Last time I had an issue like this,
> the missing symbol was present in the system headers, but guarded by a
> #ifdef that clang didn't define (where as GCC did)..... OK had a quick
> Google, and that symbol is protected by a clang "availability" macro:
>
> longdoublestrtold(constchar*,char**)__INTRODUCED_IN(21);
>
> So it seems to me that this error will be generated by any attempt to
> compile with clang unless you specify some "magic" command line option to
> tell it to use the latest android API? No idea what that would be, but
> perhaps you do?
>
> Hopefully getting closer, John.
Thanks for the help. Looks like it is expecting API 21 to be used.
Which is strange because the NDK documentation says to use the minimum
supported API you intend to use. Which is 15 for me. But just grepping
the NDK source directories, I see that certain files/symbols are only
defined starting at API 21. I think a lot of the C library headers are
provided by the target API directory, and they change it with each
version.
I'll try 21 and see if I get different results, and hopefully it won't
break when running on Android Ice Cream Sandwich (API 15)
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net