c – clang(3.3 / Xcode)中std :: function的定义在哪里
解决的问题=>最后看到更新
我正在尝试使用std :: function但它看起来只是包含< functional>没有提供定义.我试图编译以下代码: #include <functional> std::function<int(int)> f = nullptr; 用c 11作为编译选项: % clang++ -c -std=c++11 t.cc 原因: 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上面的示例,编译器仍然说: x.cc:1:10: fatal error: 'functional' file not found #include <functional> ^ 1 error generated. 哪里有功能?我想我应该给-stdlib = libc 11或者其他什么,但它也不起作用: 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工程师. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |