sdl2 instalar code blocks c++ sdl codeblocks sdl-2

c++ - instalar - sdl2 2.0 8 zip



"Winapifamily.h: No existe tal archivo o directorio" al compilar SDL en Code:: Blocks (3)

La solución rápida. Comente las líneas 121 a 132 inclusive en SDL_platform.h El archivo se carga en C :: B cuando se produce el error. Guárdalo y construye lejos!

Estoy siguiendo junto con los tutoriales SDL2.0 de LazyFoo, usando Code :: Blocks 13.12. No he tenido problemas para vincular y ejecutar SDL2 en VS2010, pero he cambiado IDE y me he encontrado con este error:

winapifamily.h: No existe tal archivo o directorio

Creo que todo está vinculado correctamente. Apunté el programa a mis directorios de inclusión y lib de SDL2.

Buildlog: (se produce un error en el archivo: .. / include / SDL2 / SDL_platform.h)

=== Build: Debug en SDL2_Setup (compilador: compilador GNU GCC) ===

error fatal: winapifamily.h: No existe tal archivo o directorio

=== La compilación falla: 1 error (s), 0 advertencia (es) (0 minuto (s), 0 segundo (s)) ===

Esta es la primera vez que hago una pregunta aquí. Solicité una respuesta a Google y busqué las preguntas / respuestas existentes aquí, pero no pude resolver el problema. Aquí está mi código también.

Mi código:

// Using SDL and standard IO #include <SDL.h> #include <stdio.h> // Screen dimension constants const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; int main( int argc, char* args[] ) { // The window we''ll be rendering to SDL_Window* window = NULL; // The surface contained by the window SDL_Surface* screenSurface = NULL; // Initialize SDL if( SDL_Init( SDL_INIT_VIDEO) < 0 ) { printf( "SDL could not initialize! SDL_GetError: %s/n", SDL_GetError() ); } else { // Create window window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN ); if( window == NULL ) { printf( "Window could not be created! SDL_GetError: %s/n", SDL_GetError() ); } else { // Get window surface screenSurface = SDL_GetWindowSurface( window ); // Fill the surface white SDL_FillRect( screenSurface, NULL, SDL_MapRGB( screenSurface->format, 0xFF, 0xFF, 0xFF)); // Update the surface SDL_UpdateWindowSurface( window ); // Wait two seconds SDL_Delay( 2000 ); } } // Destroy window SDL_DestroyWindow( window ); // Quit SDL subsystems SDL_Quit(); return 0; }


Tuve ese problema Ir

C:/Program Files (x86)/Windows Kits/8.0/Include/shared

y encuentra winapifamily.h , luego cópialo en tu

../Mingw/Include/ folder

Editar: Creo que tengo archivos de kits de Windows debido a Visual Studio 2012 o posterior, lo siento. Me alegro de que puedas resolver tu problema.

Yeap, el problema está en ese encabezado (líneas 117 a 134 en SDL_plataform.h versión SDL 2.0.3):

#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) /* Try to find out if we''re compiling for WinRT or non-WinRT */ /* If _USING_V110_SDK71_ is defined it means we are using the v110_xp or v120_xp toolset. */ #if defined(__MINGW32__) || (defined(_MSC_VER) && (_MSC_VER >= 1700) && !_USING_V110_SDK71_) /* _MSC_VER==1700 for MSVC 2012 */ #include <winapifamily.h> #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) #undef __WINDOWS__ #define __WINDOWS__ 1 /* See if we''re compiling for WinRT: */ #elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) #undef __WINRT__ #define __WINRT__ 1 #endif #else #undef __WINDOWS__ #define __WINDOWS__ 1 #endif /* _MSC_VER < 1700 */ #endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */


ACTUALIZACIÓN : SDL 2.0.4 ya está disponible, incluye una solución para este error y está disponible para su descarga en http://libsdl.org/download-2.0.php

Este es un error en SDL 2.0.3. Se ha confirmado una solución para la próxima versión de SDL. Mientras tanto, aquí hay un enlace a la copia fija de SDL_platform.h:

https://hg.libsdl.org/SDL/raw-file/e217ed463f25/include/SDL_platform.h

Si coloca el archivo en el directorio / SDL2 / de SDL 2.0.3, sobrescribiendo el original, su (s) aplicación (es) deberían compilar correctamente.