gpt4 book ai didi

c++ - 添加预处理器 #define 以更改包含哪些 header 以及调用哪些函数

转载 作者:行者123 更新时间:2023-11-28 06:16:04 24 4
gpt4 key购买 nike

我正在为 Sega Dreamcast 和 Windows 开发游戏引擎。我已经为 Dreamcast 硬件实现了我自己的库,它几乎与 PC 的 OpenGL 做同样的事情。现在,我想将两个构建合并到一个项目中,这样我就不需要开发到不同的项目来做完全相同的高级工作。

我知道您可以像这样添加预处理行:#define DREAMCAST,然后将包含 Dreamcast header 并调用适当的低级函数而不是 OpenGL。这已经完成了,但我不知道如何使之成为可能。

这真的与 Dreamcast 无关,它可能是 Mac、Linux 或其他任何东西。每个平台我都有不同的编译器。因此,当#define DREAMCAST 时,我希望 G++ KOS 编译器包含特定于 Dreamcast 的 header 和类。如果 #define DREAMCAST 不存在,我希望 MingGW 包含 Windows OpenGL header 和类。

我该怎么做?

最佳答案

对于根据预定义符号包含不同版本的初始问题,有一个简单的解决方案:

#if defined(DREAMCAST)
#include <my_dreamcast_header>
#else
#include <opengl_header>
#endif

这个功能应该在任何 C 或 C++ 编译器上都可用——而且它肯定在 MinGW 上可用。当然,您仍然需要自己调用正确的编译器,因为一旦编译开始就无法更改编译器。

关于c++ - 添加预处理器 #define 以更改包含哪些 header 以及调用哪些函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30285331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com