我正在将一个使用 SDL 1.2 的 C++ 游戏移植到 SDL2 和 Android 平台。到目前为止一切都很顺利,除了一件事:当我尝试访问 SDL_Window 的字段时,编译器告诉我
error: invalid use of incomplete type 'SDL_Window {aka struct SDL_Window}'
我认为我的 SDL 安装可能有问题。我使用以下命令从 libsdl.org 上的源代码编译了 SDL 2.0.0:
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
includeSDL_video.h
包含一个 typedef SDL_Window
on struct SDL_Window
。然后我搜索了这个结构,除了在原始源存档中的一个名为src/video/SDL_sysvideo.h
. 由于它不是 API 的文件,我怀疑我必须将它包含在我的代码中。
那么,如何在 SDL2 中为 Android 找到 SDL_Window 的定义(如果这是相关的)?