[cfe-dev] Problem with libc++

Seth Cantrell seth.cantrell at gmail.com
Tue Apr 3 09:40:13 PDT 2012


I don't think you want to replace the built-in headers or libraries.
Instead you should probably set up the version of libc++ you want
somewhere, disable the standard c++ library in your project with
-nostdinc++ and then point your Xcode project at the libc++ build you
set up using the search path and linker options.

On the command line this might look like:

clang++ -nostdinc++ -H../libcxx/include -L../libcxx/lib -lc++ main.cpp

On Apr 3, 2012, at 12:25 PM, Dix Lorenz <dlorenz at medimach.de> wrote:

>
> On 03.04.2012, at 17:38, Jean-Daniel Dupas wrote:
>
>>
>> Le 3 avr. 2012 à 17:20, Howard Hinnant a écrit :
>>
>>> On Apr 3, 2012, at 10:36 AM, Dix Lorenz wrote:
>>>
>>>> I don't know if this is the right place for this, if not please direct me to a better place.
>>>>
>>>> I just downloaded clang and libc++ trunk. This code fails:
>>>>
>>>> #include <string>
>>>> #include <vector>
>>>>
>>>> using namespace std;
>>>>
>>>> int main(int argc, const char * argv[])
>>>> {
>>>>    vector<string> v;
>>>>    v.push_back("Hello"); // <--- error here
>>>>
>>>> return 0;
>>>> }
>>>>
>>>> The error is "no viable overloaded '='". It seems as if moving strings is broken...
>>>>
>>>> This is in Xcode 4.3.2 (with the include directory from libc++ trunk replacing /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/c++/v1). If I switch to the "normal" clang Compiler in Xcode it works. If I switch from using "libc++" to "libstdc++" it also works, its the combination of the current clang and libc++ that have this problem.
>>>>
>>>> /opt/bin/clang --version
>>>> clang version 3.1 (trunk 153948)
>>>> Target: x86_64-apple-darwin11.3.0
>>>
>>> This is looking like a clang problem.  I've got TOT libc++, but a slightly older clang and I'm not seeing this behavior.
>>>
>>> Howard
>>
>>
>> I don't think. I have a TOT clang & libc++, and don't have any issue. Probably a problem with the way clang and libc++ are used with Xcode.
>
>
> Spot on!
>
> Xcode has (at least) 2 locations for the c++ headers, one in Xcode/Developer/Toolchains and another in Xcode/Developer/Platforms/MacOSX.platform/blablabla. I had replaced the one in Toolchains with the libc++ ToT headers, but not the other. Still figuring out how and when it uses which headers, but indeed it's an Xcode problem. Or rather a problem with me not understanding how Xcode works :-)
>
> Thanks,
> Dix
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev




More information about the cfe-dev mailing list