C++ 是否使用命令行选项包括头文件?

C++ 是否使用命令行选项包括头文件?,c++,gcc,include,C++,Gcc,Include,是否可以从命令行(使用GCC 4/C++)指定要包含的额外头文件 或者,除了使用#include外,还有其他方法可以包含文件吗 背景:我试图在自己的电脑上编译一个大型代码。代码通常在集群中编译,有一个复杂的构建系统(SoftRelTools Anywhere?),它与操作系统交织在一起,因此几乎不可能在其他地方安装它(实际上有数百个makefiles和shell脚本,以及到网络驱动器的硬编码路径)。然而,实际的代码相当简单,编译也很好,但它缺少很多include(主要是la“include”和“

是否可以从命令行(使用GCC 4/C++)指定要包含的额外头文件

或者,除了使用#include外,还有其他方法可以包含文件吗


背景:我试图在自己的电脑上编译一个大型代码。代码通常在集群中编译,有一个复杂的构建系统(SoftRelTools Anywhere?),它与操作系统交织在一起,因此几乎不可能在其他地方安装它(实际上有数百个makefiles和shell脚本,以及到网络驱动器的硬编码路径)。然而,实际的代码相当简单,编译也很好,但它缺少很多include(主要是la“
include
”和“
include
”)。我猜构建系统通常会处理这个问题,但我必须检查代码并手动添加包含,这是我宁愿避免的。

根据gcc文档,命令行开关“-include file”将完成这项工作。

我选择了-include选项。这是您想要的吗

-包含文件

处理文件,就像“#包含“文件”显示为 主源文件。但是 搜索文件的第一个目录是 预处理器的工作目录 而不是包含 主源文件。如果未找到 在那里,它是在 “包括”的其余部分 搜索链正常

如果提供了多个包含选项,则文件将包含在 它们出现在命令行上的顺序

从gcc手册:

-包含文件

处理文件时,就像“
”包含“文件”
”出现在主源文件的第一行一样。但是,搜索文件的第一个目录是预处理器的工作目录,而不是包含主源文件的目录。如果在那里找不到,则在“
”包含“…”的其余部分中搜索它搜索链正常

如果提供了多个-include选项,则文件将按其在命令行上的显示顺序包含


仅供参考,-include功能主要用于支持预编译头。通过这种方式,您可以将.pch文件插入到所有源文件中,而无需编辑每个源文件。谢谢!尽管我使用了RTFM(M=manpage)我还没有想到这一点。我还认为PCH只是一个Visual C++特性……但是,这似乎是他们在构建系统中使用的……相应的命令行参数对于VisualC*将是<代码> /FI>代码>,以防有人需要使用这个端口构建。?更详细地说,我对ITV的强大支持感兴趣。@gavinb当我需要用一些替代函数和/或对我的libc代码的扩展来补充一些libc头时,我将其用于一个纯金属的用例。我的所有代码仍然可以使用原型的标准头,但也可以强制包含一些额外的定义需要让他们在我的平台上工作。