erro fatal: SDL/SDL.h: Arquivo ou diretório inexistente

erro fatal: SDL/SDL.h: Arquivo ou diretório inexistente

Estou tentando praticar a lição_1 em https://tutorialsplay.com/opengl/2014/04/23/textured-cube/

Quando executo o código chamado cube.c, recebo

cube.c:16:21: fatal error: SDL/SDL.h: No such file or directory
 #include <SDL/SDL.h>
                     ^

compilation terminated.

Instalei o SDL2 com orientação em https://github.com/PluginIO/EX3/wiki/Setting-up-SDL2-in-Ubuntu-12.10

Estou usando o 14.04.

A instalação do SDL2 foi bem-sucedida e não recebi nenhum erro.

O arquivo SDL.h está localizado em "/usr/local/include/SDL2"

Tentei forçar o uso da vinculação de caminho completo por comando

gcc cube.c -lglut -lGL -lGLU -l/usr/local/include/SDL2

em vez de

gcc cube.c -lglut -lGL -lGLU -lSDL

Mas tudo foi em vão...

Alguém sabe a solução para esse problema de vinculação?

Como Muru apontou, mudei para captial e recebi "erro: nome de tipo desconhecido 'SDL_keysym'", que significa que funcionou.

Outra maneira que descobri foi

eu mudei

#include <SDL/SDL.h> 

para

#include <SDL2/SDL.h>

Não mostra mais "erro fatal: SDL/SDL.h: Esse arquivo ou diretório não existe" Portanto, por enquanto, considere resolvido. No entanto, estou recebendo os seguintes erros que serão postados em um tópico separado.

cube.c:105:22: error: unknown type name ‘SDL_keysym’
 void handleKeyPress( SDL_keysym *keysym )
                      ^
cube.c: In function ‘main’:
cube.c:239:5: error: unknown type name ‘SDL_VideoInfo’
     const SDL_VideoInfo *videoInfo;
     ^

AB: Colei a saída dos comandos sugeridos abaixo.

gcc cube.c `pkg-config --cflags --libs sdl`
Package sdl was not found in the pkg-config search path.
Perhaps you should add the directory containing `sdl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'sdl' found



gcc cube.c `pkg-config --cflags --libs sdl2`
cube.c:105:22: error: unknown type name ‘SDL_keysym’
 void handleKeyPress( SDL_keysym *keysym )
                      ^
cube.c: In function ‘main’:
cube.c:239:5: error: unknown type name ‘SDL_VideoInfo’
     const SDL_VideoInfo *videoInfo;
     ^
errors continue....

Responder1

Provavelmente você já instalou as bibliotecas, mostro os passos mas novamente para fins de completude.

  • SDL2

    sudo apt-get install libsdl2-dev
    
  • SDL1

    sudo apt-get install libsdl1.2-dev
    

Comece a compilação com:

  • SDL2

    gcc cube.c `pkg-config --cflags --libs sdl2`
    
  • SDL1

    gcc cube.c `pkg-config --cflags --libs sdl`
    

Exemplo de saída:

% pkg-config --cflags --libs sdl               
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -lSDL

% pkg-config --cflags --libs sdl2
-D_REENTRANT -I/usr/include/SDL2 -lSDL2

informação relacionada