2012-05-07 38 views
14

Aquí está un pedazo de mi Makefile actual:' "SDL.h" No existe el fichero o directorio encontrado' al compilar

CFLAGS = -O2 -Wall -pedantic -std=gnu++11 `sdl-config --cflags --libs` -lSDL_mixer 

libsdl He instalado correctamente, SDL.h se encuentra en/usr/include/sdl donde pertenece, pero simplemente no compilará. También tengo la línea #include "SDL.h" en mis archivos .h, pero sigo sin ir.

¿Alguien sabe por qué?

Respuesta

14

Si el archivo de cabecera es /usr/include/sdl/SDL.h y su código tiene:

#include "SDL.h" 

Necesitas o bien fijar su código:

#include "sdl/SDL.h" 

O decirle al preprocesador dónde encontrar incluir archivos:

CFLAGS = ... -I/usr/include/sdl ... 
5

La mayoría de las veces SDL está en /usr/include/SDL. Si es así, entonces su directiva #include <SDL.h> es incorrecta, debería ser #include <SDL/SDL.h>.

Una alternativa para eso es agregar el directorio /usr/include/SDL a sus directorios de inclusión. Para ello se debe añadir -I/usr/include/SDL a las opciones del compilador ...

Si está utilizando un IDE esto debería ser bastante fácil también ...

0

El archivo de cabecera vive en

/usr/include/SDL/SDL.h 

en C++ tirón código en esta cabecera usando

#include <SDL.h> 

que cuenta con el uso correcto de

`sdl-config --cflags --libs` 

que le dará

-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT 
-L/usr/lib/x86_64-linux-gnu -lSDL 

en el tiempo también puede ver este uso, que trabaja para una instalación estándar

`pkg-config --cflags --libs sdl` 

que se suministra con

-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -lSDL 
+0

Nota: su corrección en su uso de 'sdl-config --clfags --libs' es falsa para SDL2. –

8

Para Simple Direct Media Layer 2 (SDL2), después de instalarlo en Ubuntu 16.04 a través de:

sudo apt-get install libsdl2-dev 

que utiliza el encabezado:

#include <SDL2/SDL.h> 

y el comando del compilador enlazador:

-lSDL2main -lSDL2 

Además, también es posible que desee instalar:

apt-get install libsdl2-image-dev 
apt-get install libsdl2-mixer-dev 
apt-get install libsdl2-ttf-dev 

Con estos encabezados:

#include <SDL2/SDL_image.h> 
#include <SDL2/SDL_ttf.h> 
#include <SDL2/SDL_mixer.h> 

y los comandos de vinculador del compilador:

-lSDL2_image 
-lSDL2_ttf 
-lSDL2_mixer 
Cuestiones relacionadas