这是来自我的终端:
Korays-MacBook-Pro:~ koraytugay$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.3.0
Thread model: posix
据我所知,有三种C标准,ANSI C,C99和C11。
我如何知道我拥有哪个库以及我的编译器支持哪些库?
答案 0 :(得分:4)
Clang支持所有三个标准以及更多(GCC的“gnu99”,......)。您可以在命令行选项-std
的{{3}}中找到用于选择它们的选项。
答案 1 :(得分:4)
http://clang.llvm.org/docs/UsersManual.html#id39
使用-std
命令行标志,例如-std=c11
或-std=c++11
选择标准。
答案 2 :(得分:4)
您必须找到编译器和/或操作系统的文档,但并不总是清楚地记录下来。
Apple LLVM版本6.1.0(clang-602.0.49)(基于LLVM 3.6.0svn)
这对应于Xcode 6.3。
LLVM 3.5版本中的任何内容都应该在这个版本的编译器中:编译器基于llvm 3.6 svn分支,它存在于LLVM.org的3.6版本之前(有点)令人困惑,我知道。)
http://clang.llvm.org/cxx_status.html
但是,他们没有类似于C版支持的方便页面。事实上,在我看来,文档甚至没有准确反映clang 3.5的C11支持。
所以基本上,如果文档没有清楚地介绍它,你只需要熟悉编译器。
Xcode 6.3支持C89 / C90,C94,C99和C11的C语言功能。我相信OS X提供高达C99的完整库支持。 OS X不包含C11标准库的实现,但是编译器可能提供一些C11头。但是,<threads.h>
并非如此。