如何定义用于包含文件的 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"
与基于宏的解决方案相比,它更清晰,而且实际上不需要输入更多内容。
我需要在每个 .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"
与基于宏的解决方案相比,它更清晰,而且实际上不需要输入更多内容。