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

jdm*_*jdm 66 c++ gcc include

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

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

背景:我正在尝试在自己的PC上编译大型代码库.代码通常是在一个集群中编译的,它有一个复杂的构建系统(SoftRelTools anybody?),它与操作系统交织在一起,因此几乎不可能在其他地方安装它(实际上是数百个makefile和shell脚本,而且很难网络驱动器的编码路径).但是,实际的代码相当简单,编译得很好,但它缺少很多包含(大多数是la" include <vector>"和" include <math.h>").我猜测构建系统通常会处理这个问题,但我必须通过代码并手动添加包含,我宁愿避免.

for*_*idt 76

找到了-include选项.这是你想要的吗?

包含文件

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

如果给出了多个-include选项,则文件将按照它们在命令行中显示的顺序包含在内.

  • 仅供参考 - -include功能主要用于支持预编译头文件.这样,您就可以将.pch文件注入所有源文件,而无需编辑每一个文件. (6认同)
  • 谢谢!虽然我做了RTFM(M = manpage),但我错过了.我还认为PCH只是一个Visual C++特性......但似乎这就是他们在构建系统中使用的东西...... (4认同)
  • Visual C* 的相应命令行参数将是“/FI”,以防万一有人需要移植使用它的版本。 (2认同)

Yup*_*ing 26

从gcc手册:

包含文件

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

如果给出了多个-include选项,则文件将按照它们在命令行中显示的顺序包含在内.


tib*_*bur 9

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