一天前我安装了一个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用于库的内部消耗。