9

一天前我安装了一个 SDL2 库。它还没有在 Debian Wheezy 中,所以我使用了configure, make, make install命令。

毕竟,当我尝试使用 SDL_Texture 时,我得到了这个错误:

error: forward declaration of ‘SDL_Texture {aka struct SDL_Texture}’
invalid use of incomplete type ‘SDL_Texture {aka struct SDL_Texture}’

查找声明后,我发现的所有内容都是 SDL_render.h 中的这两行:

struct SDL_Texture;
typedef struct SDL_Texture SDL_Texture; 

根本没有定义。我认为我的安装缺少文件 SDL_sysrender.h。它在我下载的源代码中,但不在 SDL2 包含路径中。

问题应该出在哪里?有必要对配置文件使用任何标志吗?谢谢你的帮助。

4

1 回答 1

14

你的安装没有问题。SDL_Texture 在设计上是一种不透明类型(即设计为仅由 SDL2 内部操作),您可以将其作为指针“传递”,但您不能访问内部(或自己创建 SDL_Texture,例如通过做一个malloc,因为你不知道结构的大小)。如果你坚持

SDL_Texture *blah;

指针并将它们传递给 SDL2 函数,你应该没问题。

SDL_sysrender.h 是一个内部标头,正如您所提到的,它实际上定义了 SDL_Texture 以供库的内部使用。

于 2013-09-20T13:19:39.197 回答