[cfe-dev] Problem with libc++

Dix Lorenz dlorenz at medimach.de
Tue Apr 3 09:17:42 PDT 2012


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





More information about the cfe-dev mailing list