首页 文章

clang 3.2在std :: atomic上失败了 - 一个libc问题?

提问于
浏览
3

我尝试编译简单的代码

#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上,此操作失败并显示错误

/> clang -std = c 11 -stdlib = libc -O3 -march = native -c test.cc在test.cc:1中包含的文件中:/ usr / include / c / v1 / atomic:576:17:错误:原子操作的第一个参数必须是指向非const Atomic类型的指针('const Atomic(int)*'无效){return c11_atomic_load(& a_ m);}
^ ~~~~~
/ usr / include / c / v1 / atomic:580:53:注意:在成员函数的实例化'std :: _ 1 :: _ atomic_base :: load'这里请求operator _Tp()const _NOEXCEPT {return load();}
^
test.cc:5:9:注意:在实例化成员函数'std :: _ 1 :: _ atomic_base :: operator int'这里请求bar = done;

当我使用/ usr / bin / clang(它附带OS或Xcode)时,它编译得很好 . 在两种情况下,libc都位于/ usr / lib / c / v1 .

我错过了什么?是否有另外的llvm 3.2附带的libc,但我缺少了? (我在clang3.2树中找不到任何东西) .

1 回答

  • 1

    Xcode现在捆绑了Xcode.app目录中的libc . 您可以通过按住Control键并单击Xcode.app来检查此目录,然后选择“显示包内容” .

相关问题