GNU/Linux >> LINUX-Kenntnisse >  >> Linux

'SDL.h no such file or directory found' beim Kompilieren

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

Linux
  1. Fehler:xenstore-read:xs_open:Keine solche Datei oder Verzeichnis auf DomU [Gelöst]

  2. schwerwiegender Fehler openssl/evp.h:Keine solche Datei oder Verzeichnis:[Gelöst]

  3. Kann nicht ausgeführt werden Keine solche Datei oder Verzeichnis [Fix]

  4. Kann mysql_config nicht ausführen:Keine solche Datei oder Verzeichnis bei Makefile.PL [Fix]

  5. Verweisen Sie auf eine Datei im selben Verzeichnis wie ein Skript, das in $path gefunden wurde?

Keine solche Datei- oder Verzeichnislimits.h bei der Installation von Pillow unter Alpine Linux

Bash:Keine solche Datei oder Verzeichnis?

sys/types.h:Keine solche Datei oder Verzeichnis

Schwerwiegender Fehler:cuda.h:Keine solche Datei oder Verzeichnis

conda source deactivate :bash:deactivate:Keine solche Datei oder Verzeichnis

touch:kann `foo' nicht berühren:Keine solche Datei oder Verzeichnis