|
||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||
| 目录 前言 | ||||||||||||||||||||||||||||||||||||||||||||||||
|
事实上用 gcc 命令可以编译任何一种语言,但可能就无法使用某种限制语言的选项了。每种语言都有自己的前端驱动处理,因此如果某选项只针对一种语言,为了识别这些选项,就需要使用相应的驱动作为 gcc 的前端。 D.1 选项前缀所有选项都以连字符开始。它们中的一些还会用两个连字符。某些以 -f 和 -W 开始的选项还有一些特殊的含义。 前缀 --在命令行中,标识选项的传统方法是在字母前加一个连字符。新的方式则是以两个连字符开始。本索引中列出的许多选项既有旧的形式,也有新的形式,但意义完全相同。例如,设定在生成的代码中携带调试信息的传统选项是: -g 同一选项还可以用如下较长的形式,如: --debug 前缀 -f字母 f 代表 flag (标记)。大多数选项只有两种状态,开和关。例如,下面的选项设定是否打开窥孔( peephole )优化: -fpeephole 由于这一标记要么是开,要么是关,因而每个标记选项都有一个相反的选项,它使用相同的名字,但以 no 作为前缀。例如: -fno-peephole 几乎所有的选项都会触发一个真或假的标记设置,因此选项中的一个值会是默认设置。但也有例外。比如,如下两个选项中的任意一个都能指出 for 循环中变量的作用域: -ffor-scope 两个作用域设置中的任何一个都不是默认的。默认方式会符合标准,但这两个设置都是标准的变体。 任何 -f 选项都可以具有一个双连字符的选项形式。例如,如下两个选项功能相同: -frtti 前缀 -W前缀 -W 通常用来指定是否需要编译程序产生某些警告消息。与 -f 标记的设定方式相似,警告也可以打开或是在名字前加 no 来关闭。例如,如下的设定可以令编译程序在对函数调用使用了太多的参数时产生警告: -Wformat-extra-args 如果需要抑制警告消息,可以使用如下选项: -Wno-format-extra-args D.1.1 命令行的顺序选项的顺序很重要。如果命令行中有两个选项,并且它们是冲突的,通常第二个选项会改变第一个选项所产生的设定,从而覆盖了第一个选项。命令行一般由左向右进行分析,每个选项设定一个值或是一个标记(或是一组值或标记),因此在命令行中设置好的内容可能在其后被修改。 对顺序的要求其实很有实用价值。例如, -O3 优化选项将打开 -finline-functions 选项。但如果想使用 -O3 选项,又要关闭函数内嵌功能,可以按下面的顺序输入选项: -O3 -fno-inline-functions D.1.2 文件类型编译程序通过匹配表 D-1 中的后缀检查文件名,从而判断文件的内容。任何具有未知后缀的文件都视作目标机上链接器的输入,并在链接阶段传递给链接器。选项 -x 可以指示编译程序忽略后缀并将文件作为某一类型对待。 表 D-1 GCC 可识别的文件名后缀
|
||||||||||||||||||||||||||||||||||||||||||||||||
| 下一页 回专题首页 | ||||||||||||||||||||||||||||||||||||||||||||||||