Meistens befindet sich SDL in /usr/include/SDL
. Wenn ja, dann Ihr #include <SDL.h>
Direktive ist falsch, sie sollte #include <SDL/SDL.h>
sein .
Eine Alternative dazu ist das Hinzufügen des /usr/include/SDL
Verzeichnis in Ihre Include-Verzeichnisse. Dazu sollten Sie -I/usr/include/SDL
hinzufügen zu den Compiler-Flags...
Wenn Sie eine IDE verwenden, sollte dies auch recht einfach sein...
Wenn die Header-Datei /usr/include/sdl/SDL.h
ist und Ihr Code hat:
#include "SDL.h"
Sie müssen entweder Ihren Code korrigieren:
#include "sdl/SDL.h"
Oder teilen Sie dem Präprozessor mit, wo er Include-Dateien finden soll:
CFLAGS = ... -I/usr/include/sdl ...
Header-Datei befindet sich unter
/usr/include/SDL/SDL.h
__OR__
/usr/include/SDL2/SDL.h # for SDL2
Ziehen Sie in Ihrem C++-Code diesen Header mit
#include <SDL.h>
__OR__
#include <SDL2/SDL.h> // for SDL2
Sie haben die korrekte Verwendung von
sdl-config --cflags --libs
__OR__
sdl2-config --cflags --libs # sdl2
was Ihnen geben wird
-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
manchmal sehen Sie diese Verwendung auch, die für eine Standardinstallation funktioniert
pkg-config --cflags --libs sdl
__OR__
pkg-config --cflags --libs sdl2 # sdl2
die Sie versorgt
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -lSDL
__OR__
-D_REENTRANT -I/usr/include/SDL2 -lSDL2 # SDL2
Für Simple Direct Media Layer 2 (SDL2) nach der Installation auf Ubuntu 16.04 über:
sudo apt-get install libsdl2-dev
Ich habe den Header verwendet:
#include <SDL2/SDL.h>
und den Compiler-Linker-Befehl:
-lSDL2main -lSDL2
Zusätzlich können Sie auch Folgendes installieren:
apt-get install libsdl2-image-dev
apt-get install libsdl2-mixer-dev
apt-get install libsdl2-ttf-dev
Mit diesen Headern:
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_ttf.h>
#include <SDL2/SDL_mixer.h>
und die Compiler-Linker-Befehle:
-lSDL2_image
-lSDL2_ttf
-lSDL2_mixer