我尝试编译简单代码
#include <atomic>
int bar = 0;
void foo(std::atomic<int>&flag)
{ bar = flag; }
使用clang ++ 3.2(从llvm.org下载为llvm 3.2;在mac os.x 10.8.3上,此操作失败并显示错误
/&GT; clang ++ -std = c ++ 11 -stdlib = libc ++ -O3 -march = native -c test.cc
test.cc:1中包含的文件:
/ usr / include / c ++ / v1 / atomic:576:17:错误:原子操作的第一个参数必须是指向非const _Atomic类型的指针(&#39; const _Atomic(int)*&#39;无效)
{return __c11_atomic_load(&__a_, __m);} ^ ~~~~~
/ usr / include / c ++ / v1 / atomic:580:53:注意:在成员函数的实例化中 &#39;的std :: _ 1 :: _atomic_base ::负载&#39;请求
operator _Tp() const _NOEXCEPT {return load();} ^
test.cc:5:9:注意:在成员函数的实例化中,#std :: _ 1 :: _atomic_base :: operator int&#39;请求
bar = done;
当我使用/ usr / bin / clang ++(它附带OS或Xcode)时,它编译得很好。在两种情况下,libc ++都是/ usr / lib / c ++ / v1。
我错过了什么?是否有另外的libc ++与llvm 3.2一起提供,但我还缺少哪些? (我在clang3.2树中找不到任何东西)。
答案 0 :(得分:1)
Xcode现在将libc ++捆绑在Xcode.app目录中。您可以通过按住Control键并单击Xcode.app来检查此目录,然后选择“显示包内容”。