2

我正在开发一个小型 3D 引擎,使用 SDL2 管理窗口,并使用 Assimp 加载模型。

当我编译我的程序时,由于我实现了 Assimp,我在以下整数类型上有一个“不明确的符号”错误,链接到sdl_stdinc.hassimp/metadata.h

  • assimp/metadata.h
    • int64_t
  • sdl_stdinc.h
    • int8_t
    • int16_t
    • int32_t
    • int64_t
    • uint8_t
    • uint16_t
    • uint32_t
    • uint64_t

据我了解,这是一个兼容性问题:Assimp 和 SDL2 都试图重新定义这些类型,但在同一个命名空间中,所以编译器不知道在两者之间选择哪一个。

虽然这两个库不包含在同一个文件中......这样的事情会对那个错误产生影响吗?

该如何解决?我在 Web 上找不到任何解决方案,而且我有一种不好的感觉,我必须将 SDL2 更改为 GLFW 来解决我的问题。

4

1 回答 1

0

您可以包含 cstdint 并为每个模棱两可的声明放置 std::type :

#include <cstdint.h>

std::int8_t
于 2020-06-24T07:16:25.090 回答