La plupart du temps, SDL est en /usr/include/SDL
. Si oui, alors votre #include <SDL.h>
directive est erronée, elle devrait être #include <SDL/SDL.h>
.
Une alternative pour cela est d'ajouter le /usr/include/SDL
répertoire à vos répertoires d'inclusion. Pour ce faire, vous devez ajouter -I/usr/include/SDL
aux flags du compilateur...
Si vous utilisez un IDE, cela devrait être assez facile aussi...
Si le fichier d'en-tête est /usr/include/sdl/SDL.h
et votre code a :
#include "SDL.h"
Vous devez soit corriger votre code :
#include "sdl/SDL.h"
Ou indiquez au préprocesseur où trouver les fichiers d'inclusion :
CFLAGS = ... -I/usr/include/sdl ...
le fichier d'en-tête vit à
/usr/include/SDL/SDL.h
__OR__
/usr/include/SDL2/SDL.h # for SDL2
dans votre code c++, insérez cet en-tête à l'aide de
#include <SDL.h>
__OR__
#include <SDL2/SDL.h> // for SDL2
vous avez le bon usage de
sdl-config --cflags --libs
__OR__
sdl2-config --cflags --libs # sdl2
qui vous donnera
-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
-L/usr/lib/x86_64-linux-gnu -lSDL
__OR__
-I/usr/include/SDL2 -D_REENTRANT
-lSDL2
parfois vous pouvez également voir cette utilisation qui fonctionne pour une installation standard
pkg-config --cflags --libs sdl
__OR__
pkg-config --cflags --libs sdl2 # sdl2
qui vous fournit
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -lSDL
__OR__
-D_REENTRANT -I/usr/include/SDL2 -lSDL2 # SDL2
Pour Simple Direct Media Layer 2 (SDL2), après l'avoir installé sur Ubuntu 16.04 via :
sudo apt-get install libsdl2-dev
J'ai utilisé l'en-tête :
#include <SDL2/SDL.h>
et la commande de l'éditeur de liens du compilateur :
-lSDL2main -lSDL2
De plus, vous pouvez également installer :
apt-get install libsdl2-image-dev
apt-get install libsdl2-mixer-dev
apt-get install libsdl2-ttf-dev
Avec ces en-têtes :
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_ttf.h>
#include <SDL2/SDL_mixer.h>
et les commandes de l'éditeur de liens du compilateur :
-lSDL2_image
-lSDL2_ttf
-lSDL2_mixer