29-GNU编译器集合和LLVM项目
1.8.3 GNU编译器集合和LLVM项目
GNU 项目始于 1987 年,是一个开发大量自由 UNIX 软件的集合( GNU 的意思是“ GNU ’ s Not UNIX ”,即 GNU 不是 UNIX )。 GNU 编译器集合(也被称为 GCC ,其中包含 GCC C编译器)是该项目的产品之一。 GCC 在一个指导委员会的带领下,持续不断地开发,它的C编译器紧跟C标准的改动。 GCC 有各种版本以适应不同的硬件平台和操作系统,包括 UNIX 、 Linux 和 Windows 。用 gcc 命令便可调用 GCC C编译器。许多使用 gcc 的系统都用 cc 作为 gcc 的别名。
LLVM 项目成为 cc 的另一个替代品。该项目是与编译器相关的开源软件集合,始于伊利诺伊大学 2000 年的研究项目。它的 Clang 编译器处理C代码,可以通过 clang 调用。有多种版本供不同的平台使用,包括 Linux 。 2012 年, Clang 成为 FreeBSD 的默认C编译器。 Clang 也对最新的C标准支持得很好。
GNU 和 LLVM 都可以使用 -v 选项来显示版本信息,因此各系统都使用 cc 别名来代替 gcc 或 clang 命令。以下组合:
cc -v
显示你所使用的编译器及其版本。
gcc 和 clang 命令都可以根据不同的版本选择运行时选项来调用不同C标准。
gcc -std=c99 inform.c[3]
gcc -std=c1x inform.c
gcc -std=c11 inform.c
第1行调用C99标准,第2行调用GCC接受C11之前的草案标准,第3行调用GCC接受的C11标准版本。Clang编译器在这一点上用法与GCC相同。