2013-08-26 6 views
1

Я портирую на SDL2 и платформу Android игру C++, использующую SDL 1.2. Все шло хорошо до сих пор за исключением одной вещи: когда я пытаюсь получить доступ к полям SDL_Window, компилятор говорит мнеПочему SDL_Window является неполным типом?

error: invalid use of incomplete type 'SDL_Window {aka struct SDL_Window}' 

Я думаю, что моя установка SDL может быть неисправна. Я составил SDL 2.0.0 из источника, найденного на libsdl.org используя folloing команды:

ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk APP_PLATFORM=android-18 

Затем я скопировал недавно построенный libSDL2.so в $ANDROID_TOOLCHAIN/sysroot/usr/lib и файлах в каталоге include/ в $ANDROID_TOOLCHAIN/sysroot/usr/include/SDL. Эти файлы передаются в CMake и ссылаются на код игры. Мне удалось конвертировать все вызовы SDL, и теперь я застрял в этой проблеме SDL_Window.

Я сделал быстрый поиск в исходном коде SDL и обнаружил, что SDL.h включает SDL_video.h, который содержит ЬурейеЕ SDL_Window на struct SDL_Window. Затем я искал эту структуру и не нашел ничего, кроме исходного исходного архива, в файле с именем src/video/SDL_sysvideo.h. Поскольку это не файл API, я сомневаюсь, что я должен включить его в свой код.

Итак, как найти определение SDL_Window в SDL2, для Android (если это актуально)?

ответ

5

Похоже, что проблема заключается в незнании API SDL 2. Давайте запомним, что никто не имеет доступа к полям struct SDL_Window: есть функции для получения размера и флагов окна, например SDL_GetWindowFlags и SDL_GetWindowSize.

Таким образом, проблема абсолютно не связана с установкой SDL или сборок Android. Извините за пустую трату времени, люди в Интернете.

2

Я ожидал, что вы ожидаете, что только в указатели на объекты SDL_Window, а на самом деле не поместите в стек полный объект SDL_Window.

+0

Я не помещаю свой SDL_Window в стек, у меня есть ошибка, когда я пытаюсь получить доступ к его членам, например, в 'SDL_Window * w; w-> flags'. – Julien

Смежные вопросы