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.