包含某个头文件会导致 SFML 出错
Including a certain header file causes errors from SFML
我正在尝试将 ChaiScript 与 SFML 一起用于我的游戏引擎。在我将 chaiscript.hpp
包含在我的游戏对象头文件中之前,所有 SFML 都可以正常工作。我的 GameObject 头文件看起来有点像这样:
#include <a bunch of standard libraries>
#include "imgui.h"
struct Object {
std::string name;
void init();
void update();
void render();
*some template functions*
};
当我尝试在上述文件中包含 chaiscript.hpp
时出现问题。我从 SFML 的 Rect.inl 文件中得到一个重复错误(确切地说是 8 个错误):'(': illegal token on right side of '::'
,然后没有其他错误。当我不包含 chaiscript.hpp
,或者当我在对象 cpp 文件中包含 chaiscript.hpp
时,它编译正常。我之前在 SDL 中使用过 ChaiScript,但从未遇到过这样的问题,所以它是 SFML 宏搞砸了吗?我怎样才能避免这个问题?
听起来好像是 ChaiScript 中的某些东西弄乱了 SFML 中的某些东西。颠倒包含它们的顺序可能会消除这些错误(在 ChaiScript 之前包含 SFML,反之亦然)。
我正在尝试将 ChaiScript 与 SFML 一起用于我的游戏引擎。在我将 chaiscript.hpp
包含在我的游戏对象头文件中之前,所有 SFML 都可以正常工作。我的 GameObject 头文件看起来有点像这样:
#include <a bunch of standard libraries>
#include "imgui.h"
struct Object {
std::string name;
void init();
void update();
void render();
*some template functions*
};
当我尝试在上述文件中包含 chaiscript.hpp
时出现问题。我从 SFML 的 Rect.inl 文件中得到一个重复错误(确切地说是 8 个错误):'(': illegal token on right side of '::'
,然后没有其他错误。当我不包含 chaiscript.hpp
,或者当我在对象 cpp 文件中包含 chaiscript.hpp
时,它编译正常。我之前在 SDL 中使用过 ChaiScript,但从未遇到过这样的问题,所以它是 SFML 宏搞砸了吗?我怎样才能避免这个问题?
听起来好像是 ChaiScript 中的某些东西弄乱了 SFML 中的某些东西。颠倒包含它们的顺序可能会消除这些错误(在 ChaiScript 之前包含 SFML,反之亦然)。