如何定义用于包含文件的 C++ 宏

How do I define a C++ macro for including a file

我需要在每个 .cpp 我创建的文件中包含一个文件作为 Unreal Engine 项目的第一行... 这不能包含它对于 solution/project 中的每个 cpp,都是我想要的。

那个文件是:

#include "./../../../Public/TemplatePlatformer.h"

Unreal Engine 指出它必须是第一个包含。有没有一种方法可以宏化它,这样我就可以在一个地方定义它并在每个 cpp 文件的顶部使用宏...这里几乎就像一个 include txt 文件,这样编译器就认为 header声明居然在最上面?

这个:

MyClass.cpp

#include "./../../../Public/TemplatePlatformer.h"
#include "MyClass.h"

...

MyClass2.cpp

#include "./../../../Public/TemplatePlatformer.h"
#include "MyClass2.h"

...

会变成这样:

MyClass.cpp

INCLUDE_CONFIG
#include "MyClass.h"

...

MyClass2.cpp

INCLUDE_CONFIG
#include "MyClass2.h"

...

你可以这样写:

#include INCLUDE_CONFIG

并在您的 Makefile 或其他地方,使用预定义到您想要的路径的 INCLUDE_CONFIG 调用您的编译器;例如对于 gcc,标志将是:

-DINCLUDE_CONFIG="./../../../Public/TemplatePlatformer.h"

一个简单且更灵活的解决方案是创建单独的自定义头文件,其中包含此 include 以及您需要在每个 .cpp 开始时完成的任何其他内容,然后包含它。

所以你要创建一个 global.h 包含

#include "./../../../Public/TemplatePlatformer.h"

然后在每个 .cpp 中你首先要包括:

#include "global.h"

与基于宏的解决方案相比,它更清晰,而且实际上不需要输入更多内容。