Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

463
Vistas
sdl, error sdl2: SDL_window (entre otros) no declarado

He jugado con C++ por un tiempo y recientemente comencé a usar SDL y SDL2 .

Pude hacer funcionar el programa de demostración dot .

Pero otros programas, como el copiado y pegado de Lazy Foo' Productions, no parecen funcionar. Tengo SDL y SDL2 instalados (y desinstalados y reinstalados). Estoy en Ubuntu 15.04 y tengo los IDE CodeBlocks vinculados ( -ISDL2 ). Los errores son SDL_Window - SDL_WINDOWPOS_UNDEFINED - SDL_WINDOW_SHOWN - SDL_CreateWindow - SDL_GetWindowSurface - SDL_UpdateWindowSurface y, finalmente, SDL_DestroyWindow -- no fue declarada en este ámbito.

Además, incluyo:

 #include </usr/include/SDL/SDL.h> #include </usr/include/SDL2/SDL.h> #include <stdio.h>

Estoy bastante seguro de que no necesito toda esa ubicación, pero tampoco funcionó sin ella. Otra nota, cuando escribo #includes , CodeBlocks sugerirá SDL2/SDL.h pero no SDL/SDL.h .

¿Qué me estoy perdiendo?

No creo que pueda poner el código de Lazy Foo aquí, no obtuve permiso...

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El código que enumeró;

 #include </usr/include/SDL/SDL.h> #include </usr/include/SDL2/SDL.h> #include <stdio.h>

¿Por qué no lo cambias a

 #include <SDL2/SDL.h> #include <stdio.h>

como el primer encabezado es donde se SDL_CreateWindow y otras funciones de SDL2?

Además, no necesita incluir encabezados SDL y SDL2. De hecho, esa podría ser la fuente de su problema, ya que solo necesitaría incluir la versión que está utilizando.

Si está siguiendo los tutoriales del sitio de lazyfoo, puede verificar si los que está siguiendo usan SDL1.2 o SDL2 desde su tabla de contenido, ya que el sitio tiene los tutoriales para ambas versiones.

ACTUALIZAR:

No me di cuenta de que su plataforma es una plataforma Linux. Entonces es mucho más fácil resolver su problema. La demostración que siguió anteriormente se realizó con SDL-1.2, mientras que el error gcc insinuó que está utilizando SDL-2.0, por lo tanto, SDL_CreateWindow y otros errores no definidos. Debe instalar la biblioteca SDL-2.0 y los archivos de desarrollo SDL-2.0 (que le proporcionarán los encabezados SDL-2.0 necesarios). Puede hacer referencia a los paquetes SDL-2.0 proporcionados por la distribución de su plataforma.

En cuanto a la compilación, será igual que el tutorial que siguió con un cambio menor, en lugar de gcc sdltest.o -lSDL -o sdltest , emitirá gcc sdltest.o -lSDL2 -o sdltest para indicar que está vinculando su código con la biblioteca SDL2.

EDITAR

Un programa SDL simple para probar su entorno. Puede usar cualquiera de los editores de texto más simples como nano o gedit u otros para editar esto y ejecutar el comando de compilación anterior para probar su configuración.

La forma más sencilla de hacer esto es copiar el código, luego desde su terminal, cat > sdltest.cpp y pegue el código, luego presione [ENTRAR] y [CTRL-C] para finalizarlo. Luego puede ejecutar el comando de compilación como se mencionó anteriormente, g++ sdltest.cpp -lSDL2 -o sdltest .

Código;

 #include <SDL2/SDL.h> #include <stdio.h> int main() { SDL_Window *p; SDL_Renderer *w; p = SDL_CreateWindow("Game",SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,800,640,SDL_WINDOW_SHOWN); w = SDL_CreateRenderer(p, -1, 0); SDL_RenderClear(w); SDL_SetRenderDrawColor(w,255,0,0,255); SDL_Rect Rect = {220,140,200,200}; SDL_RenderFillRect(w,&Rect); SDL_RenderPresent(w); SDL_Delay(3000); SDL_DestroyRenderer(w); SDL_DestroyWindow(p); SDL_Quit(); return 0; }

Espero que ayude.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda