本章按字母顺序介绍 C 编译器选项。有关按功能分组的选项,请参见按功能分组的编译器选项。例如,表 23 列出了所有优化和性能选项。
缺省情况下,C 编译器可识别2011ISO/IEC C 标准的某些构造。C11 的功能中详细介绍了受支持的功能。如果您要将编译器限制为一个先前版本的 ISO/IEC C 标准,请使用 -std 命令。
% cc [options] filenames [libraries]...
其中:
options 表示表 36中介绍的一个或多个选项。
filenames 表示在生成可执行程序过程中使用的一个或多个文件。
C 编译器接受包含在由 filenames 指定的文件列表中的 C 源文件和对象文件的列表。除非使用 –o 选项,否则最终可执行代码将位于 a.out 中。使用 –o 选项时,代码位于由该选项指定的文件中。
使用 C 编译器可编译和链接以下任何组合:
C 源文件,带有 .c 后缀
内联模板文件,带有 .il 后缀(仅当使用 .c 文件指定时)
C 预处理源文件,带有 .i 后缀
对象代码文件,带有 .o 后缀
汇编程序源文件,带有 .s 后缀
在链接之后,C 编译器将所链接的文件(当前在可执行代码中)置于一个名为 a.out 的文件中,或置于由 –o 选项指定的文件中。当编译器生成每个 .i 或 .c 输入文件的对象代码时,始终会在当前工作目录中创建一个对象 (.o) 文件。
libraries 表示许多标准库或用户提供库中的任意库,这些库包含函数、宏和常量的定义。
使用选项 –YP, dir 可更改用于查找库的缺省目录。dir 是以冒号分隔的路径列表。 通过使用 -### 或 -xdryrun 选项并检查 ld 调用的 -Y 选项,可查看缺省库搜索顺序。
cc 使用 getopt 来解析命令行选项。这些选项被视为单个字母或后面带一个参数的单个字母。请参见 getopt(3c) 手册页。