使用命令行选项包含头文件?

问题描述 投票:0回答:3

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

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

背景:我正在尝试在我自己的电脑上编译一个大型代码库。代码通常在集群中编译,具有复杂的构建系统(有人使用 SoftRelTools 吗?),该系统与操作系统交织在一起,因此几乎不可能将其安装在其他地方(实际上是数百个 makefile 和 shell 脚本,并且很难安装)。网络驱动器的编码路径)。然而,实际的代码相当简单,并且编译得很好,但它缺少很多包含(主要是“

include <vector>
”和“
include <math.h>
”)。我猜构建系统通常会处理这个问题,但我必须仔细检查代码并手动添加包含内容,我宁愿避免这样做。

c++ gcc include
3个回答
105
投票

发现 -include 选项。这是你想要的吗?

-包含文件

处理文件,就好像“#include“file””出现在第一行一样 主要源文件。但是,那 搜索文件的第一个目录是 预处理器的工作目录 而不是包含的目录 主要源文件。如果没有找到 在那里,它是在 “#include “...”的剩余部分 搜索链正常。

如果给出多个 -include 选项,文件将包含在 它们出现在命令行上的顺序。


35
投票

来自 gcc 手册:

-包含文件

处理文件,就好像“

#include "file"
”出现在主源文件的第一行一样。但是,搜索文件的第一个目录是预处理器的工作目录,而不是包含主源文件的目录。如果在那里找不到,则会照常在“
#include "..."
”搜索链的其余部分中进行搜索。

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


15
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.