英语法语德语意大利语葡萄牙语俄语西班牙语

OnWorks 网站图标

mips-linux-gnu-cpp - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 mips-linux-gnu-cpp

这是命令 mips-linux-gnu-cpp 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

名称


cpp - C 预处理器

概要


cp [-D[=定义]...] [-U]
[-IDIR...] [-我引用DIR...]
[-W警告...]
[-M|-MM[-MG[-MF 文件名]
[-MP[-MQ 目标...]
[-公吨 目标...]
[-P[-fno-工作目录]
[-x 语言[-标准=标准]
入档 输出文件

这里只列出最有用的选项; 其余部分见下文。

商品描述


C 预处理器,通常称为 CPP,是一个 处理器 由自动使用
C 编译器在编译之前转换您的程序。 它被称为宏
处理器,因为它允许您定义 ,它们是更长的简短缩写
结构体。

C 预处理器旨在仅用于 C、C++ 和 Objective-C 源代码。
过去,它被滥用为通用文本处理器。 它会在输入时窒息
不遵守 C 的词汇规则。 例如,撇号将被解释为
字符常量的开头,并导致错误。 此外,你不能依赖它
保留对 C 系列语言不重要的输入特征。
如果一个 Makefile 被预处理,所有的硬标签将被删除,并且 Makefile 将
不行。

话虽如此,您通常可以在非 C 的事物上使用 cpp。
类似 Algol 的编程语言通常是安全的(Pascal、Ada 等)。汇编也是如此,使用
警告。 -传统-cpp 模式保留更多的空白,否则更多
宽容。 许多问题可以通过编写 C 或 C++ 风格的注释来避免
而不是本地语言注释,并保持宏简单。

在可能的情况下,您应该使用适合您正在编写的语言的预处理器
in. GNU 汇编器的现代版本具有宏功能。 最高水平
编程语言有自己的条件编译和包含机制。 如果
所有其他方法都失败了,请尝试真正的通用文本处理器,例如 GNU M4。

C 预处理器在某些细节上有所不同。 本手册讨论了 GNU C 预处理器,它
提供了 ISO 标准 C 特性的一个小超集。在默认模式下,GNU
C 预处理器不做标准要求的一些事情。 这些是特点
很少(如果有的话)使用,并且可能会导致一个词的含义发生令人惊讶的变化
程序里面没有指望他们。 要获得严格的 ISO 标准 C,您应该使用
-std=c90, -std=c99 or -std=c11 选项,取决于您使用的标准版本
想。 要获得所有强制性诊断,您还必须使用 -迂腐.

本手册描述了 ISO 预处理器的行为。 尽量减少无偿
差异,其中 ISO 预处理器的行为与传统的不冲突
语义,传统的预处理器应该以相同的方式运行。 各种种类
部分中详细说明了确实存在的差异 传统 模式.

为清楚起见,除非另有说明,否则参考 CPP 在本手册中请参考 GNU CPP。

配置


C 预处理器需要两个文件名作为参数, 入档输出文件。 该
预处理器读取 入档 连同它指定的任何其他文件 的#include。 所有
组合输入文件生成的输出写入 输出文件.

入档 or 输出文件 也许 -, 作为 入档 意味着从标准输入和
as 输出文件 表示写入标准输出。 此外,如果省略任何一个文件,则意味着
一样 - 已为该文件指定。

除非另有说明,否则选项以 =, 所有带参数的选项都可以
让该参数立即出现在选项之后,或者中间有一个空格
选项和参数: -伊富-I FOO 具有相同的效果。

许多选项具有多字母名称; 因此多个单字母选项可能 没有 be
分组: -dM 与...非常不同 -d -M.

-D 姓名
预定义 姓名 作为宏,定义为 1。

-D 姓名=定义
内容 定义 被标记和处理,就好像它们出现在
翻译第三阶段 #定义 指示。 特别地,定义将是
被嵌入的换行符截断。

如果您从 shell 或类 shell 程序调用预处理器,您可能需要
使用 shell 的引用语法来保护字符,例如具有
shell 语法中的意思。

如果你想在命令行上定义一个类似函数的宏,写下它的参数
在等号(如果有)前用括号括起来的列表。 括号是
对大多数 shell 有意义,因此您需要引用该选项。 和 sh长山壕,
-D'姓名(参数...)=定义' 作品。

-D-U 选项按照它们在命令行中给出的顺序进行处理。 全部
-宏 文件-包括 文件 选项毕竟被处理 -D-U 选项​​。

-U 姓名
取消任何以前的定义 姓名,无论是内置的还是提供了一个 -D 选项。

-undef
不要预定义任何特定于系统或特定于 GCC 的宏。 标准预定义
宏保持定义。

-I DIR
添加目录 DIR 到要搜索头文件的目录列表。

命名的目录 -I 在标准系统包含目录之前搜索。
如果目录 DIR 是一个标准的系统包含目录,该选项被忽略
确保系统目录的默认搜索顺序和特殊处理
系统头文件没有被打败。 如果 DIR 以“=”开头,那么“=”就是
替换为 sysroot 前缀; 看 --sysroot-isysroot.

-o 文件
将输出写入 文件. 这与指定相同 文件 作为第二个非选项
争论 CPP. GCC 对第二个非选项参数有不同的解释,
所以你必须使用 -o 指定输出文件。

-墙
打开所有对正常代码来说需要的可选警告。 目前这
is -W评论, -字形, -Wmultichar 以及关于整数提升的警告导致
更改“#if”表达式中的符号。 请注意,许多预处理器的警告
默认情况下处于打开状态,并且没有选项来控制它们。

-W评论
-W评论
每当评论开始序列时发出警告 /* 出现在一个 /* 评论,或每当
反斜杠换行出现在 // 评论。 (两种形式具有相同的效果。)

-字形
注释中的大多数三合字母不会影响程序的含义。 然而,一个
将形成转义换行符的三合字母 (??/ 在一行的末尾)可以,通过
更改评论开始或结束的位置。 因此,只有会形成的三合字母
转义的换行符会在评论中产生警告。

此选项隐含在 -墙。 如果 -墙 未给出,此选项仍处于启用状态
除非启用了三字符。 要在没有警告的情况下进行三字母转换,但得到
其他 -墙 警告,使用 -三合字母 -墙 -Wno-trigraphs.

-传统的
警告某些在传统和 ISO C 中表现不同的结构。另外
警告没有传统 C 等效项的 ISO C 构造,并且存在问题
应该避免的构造。

-文德夫
每当遇到不是宏的标识符时发出警告 #如果 指示,
在外面 定义. 此类标识符被替换为零。

-Wunused-宏
警告主文件中定义的未使用的宏。 一个宏是 用过的 如果是
扩展或测试存在至少一次。 预处理器也会警告如果
宏在重新定义或未定义时尚未使用。

内置宏、命令行定义的宏和include中定义的宏
文件不会被警告。

请注意: 如果实际使用了宏,但仅在跳过的条件块中使用,则
CPP 会将其报告为未使用。 为了避免这种情况下的警告,您可能会改进
宏定义的范围,例如,将其移动到第一个跳过的
堵塞。 或者,您可以提供一个虚拟使用,例如:

#如果定义了the_macro_causing_the_warning
#ENDIF

-Wendif-标签
警告每当 的#else#ENDIF 后面跟着文字。 这通常发生在
表格代码

#if FOO
...
#else FOO
...
#endif FOO

第二个和第三个“FOO”应该在注释中,但通常不在旧程序中。
默认情况下,此警告处于开启状态。

-错误
将所有警告变成硬错误。 触发警告的源代码将是
被拒绝。

-Wsystem-headers
对系统标头中的代码发出警告。 这些通常无助于寻找
您自己的代码中的错误,因此被抑制。 如果您对系统负责
图书馆,你可能想看看他们。

-w 禁止所有警告,包括 GNU CPP 默认发出的警告。

-迂腐
发出 C 标准中列出的所有强制性诊断。 他们中的一些人留下了
默认情况下,因为它们经常在无害的代码上触发。

-迂腐的错误
发出所有强制诊断,并将所有强制诊断都变成错误。
这包括 GCC 在没有问题的情况下发出的强制性诊断 -迂腐 但视为
警告。

-M 不是输出预处理的结果,而是输出适合于的规则 使
描述主源文件的依赖关系。 预处理器输出一个
使 包含该源文件的目标文件名、冒号和名称的规则
所有包含的文件,包括那些来自 -包括 or -宏 命令-
线选项。

除非明确指定(与 -公吨 or -MQ),目标文件名由
带有任何后缀的源文件的名称替换为目标文件后缀和任何
删除了前导目录部分。 如果有很多包含的文件,那么规则是
使用分成几行 \-新队。 规则没有命令。

此选项不会抑制预处理器的调试输出,例如 -dM。 避免
将此类调试输出与您应该明确指定的依赖项规则混合在一起
依赖输出文件 -MF,或使用环境变量,如
DEPENDENCIES_OUTPUT. 调试输出仍将发送到常规输出流
正常。

通过 -M 对司机意味着 -E, 并用隐式抑制警告 -w.

-MM 喜欢 -M 但不要提及在系统头目录中找到的头文件,
也不是直接或间接包含在此类头文件中的头文件。

这意味着选择尖括号或双引号 的#include
指令本身并不确定该标头是否会出现在 -MM
依赖输出。 这是从 GCC 3.0 版和
早。

-MF 文件
当与 -M or -MM, 指定要写入依赖项的文件。 如果不 -MF
switch 预处理器将规则发送到它本来发送的同一个地方
预处理输出。

与驱动程序选项一起使用时 -MD or -MMD, -MF 覆盖默认依赖
输出文件。

-MG 结合一个选项,例如 -M 请求依赖生成, -MG 假设
缺少的头文件是生成的文件,并添加到依赖列表中,而不需要
引发错误。 依赖文件名直接取自“#include”
指令而不预先设置任何路径。 -MG 还抑制预处理输出,作为
缺少头文件使这无用。

此功能用于生成文件的自动更新。

-MP 此选项指示 CPP 为每个依赖项添加一个虚假目标,而不是
main 文件,导致每个文件都不依赖任何东西。 这些虚拟规则可以解决错误
使 如果您删除头文件而不更新 生成文件 匹配。

这是典型的输出:

test.o:test.c test.h

测试.h:

-公吨 目标
更改依赖生成发出的规则的目标。 默认情况下,CPP 需要
主输入文件的名称,删除任何目录组件和任何文件后缀
.c, 并附加平台的常用对象后缀。 结果就是目标。

An -公吨 选项会将目标设置为您指定的字符串。 如果你想
多个目标,您可以将它们指定为单个参数 -公吨,或使用多个
-公吨 选项​​。

例如, -公吨 '$(objpfx)foo.o' 可能会给

$(objpfx)foo.o: foo.c

-MQ 目标
与...一样 -公吨, 但它引用了任何特殊的 Make 字符。
-MQ '$(objpfx)foo.o'

$$(objpfx)foo.o: foo.c

默认目标是自动引用的,就好像它是用 -MQ.

-MD -MD 相当于 -M -MF 文件,除了 -E 不是暗示。 司机
确定 文件 基于是否 -o 给出了选项。 如果是,则驱动程序使用其
参数,但后缀为 .d, 否则它采用输入文件的名称,
删除任何目录组件和后缀,并应用 .d 后缀。

If -MD-E, 任何 -o 开关被理解为指定
依赖输出文件,但如果不使用 -E,每个 -o 被理解为指定一个
目标对象文件。

-E 不是暗示, -MD 可用于生成依赖项输出文件作为
编译过程的副作用。

-MMD
喜欢 -MD 除了只提到用户头文件,而不是系统头文件。

-x c
-x C ++
-x 目标
-x 汇编器与 cpp
指定源语言:C、C++、Objective-C 或汇编。 这无关
符合标准或扩展; 它只是选择要使用哪种基本语法
预计。 如果你没有给出这些选项,cpp 会从
源文件的扩展名: .c, 的cc, .m.S. 其他一些常见的扩展
C++ 和汇编也被识别。 如果 cpp 不能识别扩展名,它
将文件视为 C; 这是最通用的模式。

请注意: 以前版本的 cpp 接受了 -lang 选项同时选择了
语言和标准的一致性级别。 此选项已被删除,因为
它与 -l 选项。

-标准=标准
-ansi
指定代码应遵循的标准。 目前 CPP 知道 C
和 C++ 标准; 将来可能会添加其他人。

标准 可能是以下之一:

“C90”
“C89”
“iso9899:1990”
1990 年的 ISO C 标准。 c90 是这个版本的习惯简写
标准。

-ansi 选项相当于 -std=c90.

“iso9899:199409”
1990 年 C 标准,1994 年修订。

“iso9899:1999”
“C99”
“iso9899:199x”
“c9x”
修订的 ISO C 标准,于 1999 年 XNUMX 月发布。在发布之前,本
被称为C9X。

“iso9899:2011”
“C11”
“c1x”
修订的 ISO C 标准,于 2011 年 XNUMX 月发布。在发布之前,本
被称为C1X。

“gnu90”
“gnu89”
1990 C 标准加上 GNU 扩展。 这是默认设置。

“gnu99”
“gnu9x”
1999 C 标准加上 GNU 扩展。

“gnu11”
“gnu1x”
2011 C 标准加上 GNU 扩展。

“c++98”
1998 ISO C++ 标准加上修正。

“GNU++98”
与...相同 -std=c++98 加上 GNU 扩展。 这是 C++ 代码的默认设置。

-一世- 拆分包含路径。 指定的任何目录 -I 之前的选项 -一世- ,那恭喜你,
仅搜索使用“#include”请求的标头文件””; 他们没有被搜索
“#包括文件>". 如果指定了其他目录 -I 之后的选项
-一世-, 这些目录被搜索所有 的#include 指令。

此外, -一世- 禁止使用当前文件目录的目录作为
“#include”的第一个搜索目录文件””.

此选项已被弃用。

-nostdinc
不要在标准系统目录中搜索头文件。 只有目录
您已指定 -I 选项(和当前文件的目录,如果
适当)进行搜索。

-nostdinc++
不要在特定于 C++ 的标准目录中搜索头文件,但仍然
搜索其他标准目录。 (此选项在构建 C++ 时使用
图书馆。)

-包括 文件
流程 文件 好像“#include“file””作为主要来源的第一行出现
文件。 但是,第一个目录搜索 文件 是预处理器的工作
目录 代替 of 包含主源文件的目录。 如果没有找到
在那里,它在 "#include "..."" 搜索链的其余部分中被搜索为
正常。

如果多个 -包括 给出了选项,文件按它们的顺序包含
出现在命令行中。

-宏 文件
完全像 -包括, 除了扫描产生的任何输出 文件 被抛出
离开。 它定义的宏保持定义。 这允许您获取所有宏
来自标题而不处理其声明。

指定的所有文件 -宏 在由指定的所有文件之前处理 -包括.

-irafter DIR
搜索 DIR 对于头文件,但这样做 after 指定的所有目录 -I
标准系统目录已用尽。 DIR 被视为一个系统包括
目录。 如果 DIR 以“=”开头,那么“=”将被替换为sysroot
字首; 看 --sysroot-isysroot.

-前缀 字首
指定 字首 作为后续的前缀 -i 带前缀 选项。 如果前缀
代表一个目录,你应该包括最后的 /.

-i 带前缀 DIR
-iwithprefixbefore DIR
附加 DIR 到先前指定的前缀 -前缀,并添加结果
目录到包含搜索路径。 -iwithprefixbefore 把它放在同一个地方 -I
将; -i 带前缀 把它放在哪里 -irafter 将。

-isysroot DIR
这个选项就像 --sysroot 选项,但仅适用于头文件(除了
Darwin 目标,它同时适用于头文件和库)。 见
--sysroot 选项以获取更多信息。

-imultilib DIR
使用方法 DIR 作为包含特定于目标的 C++ 头文件的目录的子目录。

-isystem DIR
搜索 DIR 对于头文件,在指定的所有目录之后 -I 但在此之前
标准系统目录。 将其标记为系统目录,以便获得相同的
应用于标准系统目录的特殊处理。

If DIR 以“=”开头,那么“=”将被sysroot前缀替换; 看
--sysroot-isysroot.

-我引用 DIR
搜索 DIR 仅适用于使用“#include”请求的头文件文件””; 他们不是
搜索“#include文件>", 在指定的所有目录之前 -I 在之前
标准系统目录。

If DIR 以“=”开头,那么“=”将被sysroot前缀替换; 看
--sysroot-isysroot.

-fdirectives-only
预处理时,处理指令,但不展开宏。

选项的行为取决于 -E-f预处理 选项​​。

-E, 预处理仅限于处理诸如“#define”之类的指令,
“#ifdef”和“#error”。 其他预处理器操作,例如宏扩展和
不执行三字符转换。 除此之外 -dD 选项是隐含的
启用。

-f预处理, 命令行和大多数内置宏的预定义是
禁用。 处理上下文相关的诸如“__LINE__”之类的宏
一般。 这可以编译以前用“-E”预处理过的文件
-fdirectives-only”。

-E-f预处理,规则 -f预处理 取得优先权。 这个
启用对先前使用“-E”预处理的文件的完全预处理
-fdirectives-only”。

-fdollars-in-identifiers
接受 $ 在标识符中。

- 扩展标识符
接受标识符中的通用字符名称。 默认情况下启用此选项
适用于 C99(以及更高版本的 C 标准版本)和 C++。

-fno-canonical-system-headers
预处理时,不要通过规范化缩短系统头路径。

-f预处理
向预处理器指示输入文件已被预处理。 这个
抑制宏扩展、三字符转换、转义换行符拼接等内容,
和处理大多数指令。 预处理器仍然识别并删除
注释,以便您可以传递经过预处理的文件 -C 编译器没有
问题。 在这种模式下,集成的预处理器只不过是一个标记器
对于前端。

-f预处理 如果输入文件具有扩展名之一,则为隐式 .i, .ii or .mi.
这些是 GCC 用于预处理文件的扩展名 -保存临时.

-ftabstop=宽度
设置制表位之间的距离。 这有助于预处理器报告正确的列
警告或错误中的数字,即使选项卡出现在行上。 如果值小于
大于 1 或大于 100,则忽略该选项。 默认值为 8。

-fdebug-cpp
此选项仅对调试 GCC 有用。 当与 -E, 转储调试
有关位置图的信息。 输出中的每个标记前面都有转储
其位置所属的地图。 保存令牌位置的地图转储
将会:

{"P":F ;"F":F ;"L": ;“C”: ;"S": ;"M": ;"E": ,"位置": }

不使用时 -E,此选项无效。

-ftrack-宏扩展[=水平]
跨宏扩展跟踪令牌的位置。 这允许编译器发出
出现编译错误时关于当前宏扩展堆栈的诊断
宏观扩张。 使用此选项会使预处理器和编译器消耗
更多的记忆。 这 水平 参数可用于选择token的精度等级
位置跟踪从而在必要时减少内存消耗。 价值 0 of
水平 取消激活此选项就像没有一样 -ftrack-宏扩展 出现在
命令行。 价值 1 以降级模式跟踪令牌位置,以便
最小的内存开销。 在这种模式下,所有由扩展产生的令牌
类函数宏的参数具有相同的位置。 价值 2 跟踪令牌
位置完全。 这个值是最需要内存的。 当给出这个选项时
无参数,默认参数值为 2.

请注意,“-ftrack-macro-expansion=2”默认处于激活状态。

-fexec-字符集=字符集
设置执行字符集,用于字符串和字符常量。 默认的
是 UTF-8。 字符集 可以是系统的“iconv”库支持的任何编码
常规。

-fwide-exec-charset=字符集
设置宽执行字符集,用于宽字符串和字符常量。
默认为 UTF-32 或 UTF-16,以对应于“wchar_t”的宽度为准。 作为
-fexec 字符集, 字符集 可以是系统的“iconv”支持的任何编码
图书馆例程; 但是,您将遇到不适合的编码问题
正好在“wchar_t”中。

-finput-字符集=字符集
设置输入字符集,用于从输入的字符集翻译过来
文件到 GCC 使用的源字符集。 如果语言环境未指定,或 GCC
无法从语言环境中获取此信息,默认为 UTF-8。 这可以
被语言环境或这个命令行选项覆盖。 目前命令-
如果存在冲突,则 line 选项优先。 字符集 可以是任何编码
由系统的“iconv”库例程支持。

-fworking-目录
在预处理器输出中启用行标记的生成,这将使编译器
在预处理时知道当前的工作目录。 当这个选项是
启用,预处理器将在初始行标记之后发出第二个行标记
当前工作目录后跟两个斜杠。 GCC 将使用这个
目录,当它存在于预处理输入中时,作为发出的目录
某些调试信息格式的当前工作目录。 这个选项是
如果启用调试信息,则隐式启用,但这可以通过
否定形式 -fno-工作目录。 如果 -P 标志存在于命令中
行,此选项无效,因为不会发出任何“#line”指令。

-fno-show-column
不要在诊断中打印列号。 如果诊断是必要的,这可能是必要的
被不理解列号的程序扫描,例如
德亚格努.

-A 谓词=回答
使用谓词进行断言 谓词 并回答 回答. 这个表格是
优先于旧形式 -A 谓词(回答),这仍然受支持,因为它
不使用外壳特殊字符。

-A -谓词=回答
用谓词取消断言 谓词 并回答 回答.

-dCHARS
字符 是以下一个或多个字符的序列,并且不能是
前面有一个空格。 其他字符由编译器正确解释,或
保留给 GCC 的未来版本,因此被默默忽略。 如果您指定
行为冲突的字符,结果未定义。

M 生成一个列表,而不是正常的输出 #定义 所有的指令
预处理器执行期间定义的宏,包括预定义的
宏。 这使您可以找出在您的版本中预定义的内容
预处理器。 假设你没有文件 foo.h, 命令

触摸 foo.h; cpp -dM foo.h

将显示所有预定义的宏。

如果你使用 -dM 没有 -E 选项, -dM 被解释为的同义词
-fdump-rtl-mach.

D 喜欢 M 除了两个方面:它确实 没有 包括预定义的宏,它
输出 练习 #定义 指令和预处理的结果。 两种
输出到标准输出文件。

N 喜欢 D,但只发出宏名称,而不是它们的扩展。

I 输出 的#include 指令以及预处理的结果。

U 喜欢 D 除了仅扩展的宏或测试其定义性的宏
在预处理器指令中,是输出; 输出延迟到使用或
宏测试; 和 #undef 指令也会为测试的宏输出,但是
当时未定义。

-P 禁止在预处理器的输出中生成线标记。 这可能是
在非 C 代码上运行预处理器时很有用,并且将被发送
到可能被行标记混淆的程序。

-C 不要丢弃评论。 所有注释都传递到输出文件,除了
对于已处理指令中的注释,这些注释与指令一起被删除。

使用时应做好副作用的准备 -C; 它导致预处理器
将评论视为其本身的标记。 例如,评论出现在
将是指令行的开始具有将该行变成
普通的源代码行,因为该行的第一个标记不再是 #.

-CC 不要丢弃注释,包括在宏扩展期间。 这就像 -C, 除
包含在宏中的注释也会传递到输出文件中
宏被展开。

除了副作用之外 -C 选项, -CC 选项导致所有 C++ 风格
要转换为 C 样式注释的宏中的注释。 这是为了防止以后
使用该宏无意中注释掉了源代码行的其余部分。

-CC option 通常用于支持 lint 注释。

-传统-cpp
尝试模仿老式 C 预处理器的行为,而不是 ISO C
预处理器。

-三合字母
处理三字符序列。

-重新映射
启用特殊代码来解决只允许非常短的文件的文件系统
名称,例如 MS-DOS。

- 帮帮我
--目标帮助
打印描述所有命令行选项的文本,而不是预处理任何内容。

-v 详细模式。 在执行开始时打印出 GNU CPP 的版本号,以及
报告包含路径的最终形式。

-H 除了其他正常活动之外,打印所使用的每个头文件的名称。 每个
名称缩进以显示在 的#include 堆栈是。 预编译头
文件也会被打印出来,即使它们被发现是无效的; 无效的预编译
头文件打印为 ...X 和一个有效的 ...! .

-版
- 版
打印出 GNU CPP 的版本号。 用一个破折号,继续像往常一样预处理。
用两个破折号,立即退出。

环境


本节介绍影响 CPP 运行方式的环境变量。 你可以
使用它们来指定搜索包含文件时要使用的目录或前缀,或
控制依赖输出。

请注意,您还可以使用以下选项指定要搜索的位置 -I,并控制
带有选项的依赖输出,例如 -M. 这些优先于环境变量,
这反过来优先于 GCC 的配置。

路径
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
每个变量的值是一个由特殊字符分隔的目录列表,很多
喜欢 PATH, 在其中查找头文件。 特殊的性格,
“PATH_SEPARATOR”,取决于目标并且在 GCC 构建时确定。 对于微软
基于 Windows 的目标它是一个分号,对于几乎所有其他目标它是一个
冒号。

路径 指定要搜索的目录列表,就像用 -I,但
在给出的任何路径之后 -I 命令行选项。 这个环境变量
无论预处理哪种语言,都会使用。

其余的环境变量仅在预处理特定
语言表示。 每个都指定要搜索的目录列表,就像
指定为 -isystem, 但在给定的任何路径之后 -isystem 关于的选项
命令行。

在所有这些变量中,一个空元素指示编译器搜索其当前的
工作目录。 空元素可以出现在路径的开头或结尾。 为了
例如,如果值 路径 是“:/special/include”,与
-一世。 -I/特殊/包括.

DEPENDENCIES_OUTPUT
如果设置了这个变量,它的值指定了如何为 Make based 输出依赖
在编译器处理的非系统头文件上。 系统头文件是
在依赖输出中被忽略。

价值 DEPENDENCIES_OUTPUT 可以只是一个文件名,在这种情况下 Make 规则
写入该文件,从源文件名猜测目标名称。 或者
值可以具有以下形式 文件 目标,在这种情况下,规则被写入文件 文件
运用 目标 作为目标名称。

换句话说,这个环境变量相当于组合了选项 -MM
-MF,有一个可选的 -公吨 也切换。

SUNPRO_DEPENDENCIES
该变量与 DEPENDENCIES_OUTPUT (见上文),除了那个系统
头文件不会被忽略,所以这意味着 -M 而非 -MM。 但是,那
省略了对主输入文件的依赖。

使用 onworks.net 服务在线使用 mips-linux-gnu-cpp


Ad


Ad

最新的 Linux 和 Windows 在线程序