【问题标题】:Getting errors when including sdl2/sdl_image.h包含 sdl2/sdl_image.h 时出现错误
【发布时间】:2020-06-28 12:51:02
【问题描述】:

所以我对 SDL2 的问题是我像这样包含 SDL2/SDL_image.h 的那一刻:

#include <SDL2/SDL_image.h>

即使不使用 sdl_image 的任何功能,当我编译时也会出现很多错误。

我得到 3 种类型的错误:

冲突类型(exp:错误冲突类型 'SDL_ThreadPriority')。

和枚举器的重新声明(exp:枚举器SDL_ASSERTION_ABORT的错误重新声明)。

And : 重定义(exp: error redefinition of 'struct SDL_RWops')。

我在 Linux 上使用 c 语言,我尝试在代码块中使用 gcc 和 mingw 进行编译,我得到了同样的错误。

我已经安装了 SDL2_image,并在编译器中链接了它。

【问题讨论】:

  • 你还包括什么?请发帖minimal reproducible example
  • 请提供更多详细信息,例如:编译器消息、您的代码、您的环境
  • 我包括 stdio.h、stdlib.h、SDL2/SDL.h 和 SDL2/SDL_image.h
  • 至于环境,它的代码块和mingw。
  • 我无法在这里编写代码(我正在为 stackoverfolw 苦苦挣扎),但它只是打开窗口和绘制矩形的代码。

标签: c sdl-2


【解决方案1】:

好的,伙计们,我解决了我的问题。

导致冲突的原因是 sdl2 被安装了两次,第一次是通过包管理器安装,第二次是通过从源代码编译手动安装。

所以我有两个 SDL2 目录,一个在:/usr/include,第二个在:/usr/local/include。

当通过包管理器自动安装 libsdl2-image-dev 时,它安装在:/usr/include 而不是后者,这就是我开始在我的程序中使用 in 时导致问题的原因。 所以我所要做的就是卸载 /usr/local/include 中的那个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    相关资源
    最近更新 更多