在每个源文件中包含一个头文件

pyt*_*nic 4 c c++ header clang

假设您有100个源文件(.c或.cpp)文件,并且您希望在每个文件中包含一些定义,函数/变量声明.通常在C/C++中,您可以使用头文件来实现此目的.但在这种情况下,您需要在每个源文件中放入#include"header.h".

现在我的问题是,有没有办法为所有文件包含一个标题而不在每个文件中放入#include"header.h",因为编写#include"header.h"为100s是非常烦人的源文件.

Car*_*rum 9

你可以使用-includeclang或GCC 的标志.从手册页:

-include 文件

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

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

例:

clang -include header.h -c file1.c
clang -include header.h -c file2.c
clang -include header.h -c file3.c
clang -o app file1.o file2.o file3.o
Run Code Online (Sandbox Code Playgroud)

MSVC有/FI旗帜,类似.