添加预处理器#define来更改包含哪些头文件以及调用哪些函数
Adding a preprocessor #define to change which headers are included and which functions are called
我正在为Sega Dreamcast和Windows开发游戏引擎。我已经在Dreamcast硬件上实现了自己的库,这与PC上的OpenGL几乎是一样的。现在,我想将两个构建合并到一个项目中,这样我就不需要开发不同的项目来做完全相同的高级内容。
我知道你可以添加这样的预处理行:#define DREAMCAST,然后DREAMCAST头将被包括在内,适当的低级函数将被调用,而不是OpenGL。以前有人这样做过,但我不知道如何使之成为可能。
这真的和Dreamcast没有关系,它可能是Mac, Linux或其他什么。我对每个平台都有不同的编译器。因此,当#define DREAMCAST时,我希望g++ KOS编译器包含特定于DREAMCAST的头文件和类。如果#define DREAMCAST不存在,我希望MingGW包含Windows OpenGL头文件和类。
我该怎么做?
对于根据预定义符号包含不同版本的初始问题,有一个简单的解决方案:
#if defined(DREAMCAST)
#include <my_dreamcast_header>
#else
#include <opengl_header>
#endif
这个功能应该在任何C或c++编译器上都是可用的——MinGW上绝对是这样。当然,您仍然需要自己调用正确的编译器,因为一旦编译开始,就无法更改编译器。
相关文章:
- 编译多个C++文件.调用二进制文件以运行代码
- 无法从 SO 文件调用 SO 文件的函数 - C++生成文件
- 如何从另一个文件调用类构造函数?
- 调用函数一次用于动态链接库,一次从可执行文件调用函数
- 当我从头文件和实现文件调用我的函数到我的主文件时,我没有得到任何输出
- 从 Android 中的 C 文件调用C++函数
- 从外部文件C++调用函数
- 如何从多个 cpp 文件调用函数
- 从用户定义的头文件调用函数时出现未定义的引用错误,其实现位于.cpp文件中
- cmake:生成批处理文件调用cl.exe
- 在文件中生成随机数,然后从文件调用它们,然后将它们打印出来
- main.cpp从 .h 文件调用公共虚拟方法
- 如何从 python (py) 文件调用 C++ 函数
- 如何从 cpp 文件调用 setRequestOrientation()
- 调试Visual Studio中可执行文件调用的C 文件
- 可以使用不同的头文件调用相同的函数吗?
- 从 Android 中的原生 c++ 文件调用本机 opencv
- 使用对象文件调用Winapi功能
- 从头文件调用字符串getter函数
- 方法从头文件调用