день назад я установил библиотеку 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.
Где должна быть проблема? Необходимо использовать любой флаг для настройки файла?
Спасибо за помощь.
С вашей установкой все в порядке. SDL_Texture по своему дизайну является непрозрачным типом (то есть предназначен для работы только внутри SDL2), вы можете «передать его» в качестве указателя, но вы не можете получить доступ к внутренним объектам (или, например, создать SDL_Texture самостоятельно). делая malloc, потому что вы не знаете размер структуры). Если вы придерживаетесь
SDL_Texture *blah;
указатели и передать их функциям SDL2 у вас все будет хорошо.
SDL_sysrender.h — это внутренний заголовок, который, как вы упомянули, фактически определяет SDL_Texture для внутреннего использования библиотеки.
Других решений пока нет …