![](/img/trans.png)
[英]Cannot create SDL_Window giving SDL_Main.h error even though included
[英]Why SDL_Window is an incomplete type?
我正在将使用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
libSDL2.so
$ANDROID_TOOLCHAIN/sysroot/usr/lib
,并将文件复制到$ANDROID_TOOLCHAIN/sysroot/usr/lib
libSDL2.so
$ANDROID_TOOLCHAIN/sysroot/usr/include/SDL
中的include/
目录中。 这些文件被提供给CMake,并由游戏代码引用。 我设法转换了每个SDL调用,现在我陷入了这个SDL_Window问题。
我的确在SDL的源代码快速搜索,发现SDL.h
包括SDL_video.h
其中包含一个typedef SDL_Window
的struct SDL_Window
。 然后,我搜索了这个结构,除了在原始源存档中的名为src/video/SDL_sysvideo.h
的文件中,什么都没有找到。 由于它不是API的文件,因此我怀疑是否必须将其包含在代码中。
那么,如何在Android的SDL2中找到SDL_Window的定义(如果相关)?
看来问题出在缺乏对SDL 2 API的了解。 让我们记住,没有访问struct SDL_Window
的字段:有一些函数可以获取窗口的大小和标志,例如SDL_GetWindowFlags和SDL_GetWindowSize 。
因此,问题绝对与SDL的安装或Android版本无关。 很抱歉浪费时间,网络人士。
我希望您只能处理指向 SDL_Window对象的指针 ,而不实际将完整的SDL_Window对象放在堆栈上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.