我如何了解我的库是什么标准以及 gcc 在我的计算机中编译的标准是什么?
How can I understand what standard my libraries are and to what standard gcc compiles in my computer?
这是我的终端:
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
据我所知有3个C标准,ANSI C、C99和C11。
我怎么知道我有哪个库以及我的编译器支持什么?
Clang 支持所有三个标准以及更多标准(GCC 的“gnu99”,...)。您可以在用于选择它们的命令行选项 -std
的 documentation 中找到。
http://clang.llvm.org/docs/UsersManual.html#id39
使用-std
命令行标志,例如-std=c11
或 -std=c++11
到 select 标准。
您必须找到适用于您的编译器 and/or 操作系统的文档,但并不总是清楚地记录下来。
Apple LLVM version 6.1.0 (clang-602.0.49) (based on 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>
不是。
这是我的终端:
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
据我所知有3个C标准,ANSI C、C99和C11。
我怎么知道我有哪个库以及我的编译器支持什么?
Clang 支持所有三个标准以及更多标准(GCC 的“gnu99”,...)。您可以在用于选择它们的命令行选项 -std
的 documentation 中找到。
http://clang.llvm.org/docs/UsersManual.html#id39
使用-std
命令行标志,例如-std=c11
或 -std=c++11
到 select 标准。
您必须找到适用于您的编译器 and/or 操作系统的文档,但并不总是清楚地记录下来。
Apple LLVM version 6.1.0 (clang-602.0.49) (based on 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>
不是。