Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

466
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda