c – clang(3.3 / Xcode)中std :: function的定义在哪里

前端之家收集整理的这篇文章主要介绍了c – clang(3.3 / Xcode)中std :: function的定义在哪里前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
解决的问题=>最后看到更新

我正在尝试使用std :: function但它看起来只是包含< functional>没有提供定义.我试图编译以下代码

@H_404_13@#include <functional> std::function<int(int)> f = nullptr;

用c 11作为编译选项:

@H_404_13@% clang++ -c -std=c++11 t.cc

原因:

@H_404_13@t.cc:3:6: error: no type named 'function' in namespace 'std' std::function<int(int)> f = nullptr; ~~~~~^ t.cc:3:14: error: expected unqualified-id std::function<int(int)> f = nullptr; ^ 2 errors generated.

我错过了什么?我知道C很好但是对clang / C 11来说很新,因此我猜想我缺乏重要的知识.

我在MacOS X 10.8上使用clang.

更新1

我试过a sample at cppreference.com site但它也不会编译.提供一些选择解决问题?

更新2

尝试使用clang -c -std = c 11 -stdlib = libc 11 x.cc从cppreference.com上面的示例,编译器仍然说:

@H_404_13@x.cc:1:10: fatal error: 'functional' file not found #include <functional> ^ 1 error generated.

哪里有功能?我想我应该给-stdlib = libc 11或者其他什么,但它也不起作用:

@H_404_13@clang: error: invalid library name in argument '-stdlib=libc++11'

我如何找到-stdlib的参数列表? (注意:在手册页中,只有可用的选项是libc和libstdc,它们都不起作用)

功能只是不起作用?

解决方法

对于C 11,最好始终调用clang为:clang -std = c 11 -stdlib = libc

我大部分时间都使用它,所以我将环境变量$CXX设置为此值.这样,我在编译和链接中都获得了方言和库选项. -std = c 11不足,因为clang仍将使用/usr/include / c /4.2.1中的(旧)系统gcc头.

-stdlib = libc将使用/usr/lib / c / v1中的clang头,例如< functional>.

有一个similar question,答案是Howard Hinnant,他是(IIRC)的Apple工程师.

猜你在找的Xcode相关文章