SDL_Texture – 不完整的types

一天前我安装了一个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; 

根本没有定义。 我想我的安装缺less文件SDL_sysrender.h。 它是在我下载的源代码中,但不包含在SDL2包含path中。

问题在哪里? 它需要使用任何标志的configuration文件? 谢谢你的帮助。

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

 SDL_Texture *blah; 

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

SDL_sysrender.h是一个内部头文件,正如你所提到的,它实际上定义了SDL_Texture用于库的内部消耗。