GNU/Linux >> Znalost Linux >  >> Linux

'SDL.h nebyl nalezen žádný takový soubor nebo adresář' při kompilaci

SDL je většinou v /usr/include/SDL . Pokud ano, pak vaše #include <SDL.h> direktiva je chybná, měla by být #include <SDL/SDL.h> .

Alternativou k tomu je přidání /usr/include/SDL adresáře do začleněných adresářů. K tomu byste měli přidat -I/usr/include/SDL na příznaky kompilátoru...

Pokud používáte IDE, mělo by to být také docela snadné...


Pokud je soubor záhlaví /usr/include/sdl/SDL.h a váš kód má:

#include "SDL.h"

Musíte buď opravit svůj kód:

#include "sdl/SDL.h"

Nebo sdělte preprocesoru, kde má najít zahrnuté soubory:

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

hlavičkový soubor žije na

/usr/include/SDL/SDL.h

       __OR__

/usr/include/SDL2/SDL.h  #  for SDL2

ve vašem kódu c++ vytáhněte tuto hlavičku pomocí

#include <SDL.h>

       __OR__

#include <SDL2/SDL.h>    // for SDL2

máte správné použití

sdl-config --cflags --libs

       __OR__

sdl2-config --cflags --libs   #  sdl2

který vám dá

-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

občas můžete také vidět toto použití, které funguje pro standardní instalaci

pkg-config --cflags --libs sdl

       __OR__

pkg-config --cflags --libs sdl2   #  sdl2

který vám dodává

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

       __OR__

-D_REENTRANT -I/usr/include/SDL2 -lSDL2   #  SDL2

Pro Simple Direct Media Layer 2 (SDL2), po instalaci na Ubuntu 16.04 přes:

sudo apt-get install libsdl2-dev

Použil jsem záhlaví:

#include <SDL2/SDL.h>  

a příkaz linkeru kompilátoru:

-lSDL2main -lSDL2 

Kromě toho můžete také chtít nainstalovat:

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

S těmito záhlavími:

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

a příkazy linkeru kompilátoru:

-lSDL2_image 
-lSDL2_ttf 
-lSDL2_mixer

Linux
  1. fatální chyba openssl/evp.h:Žádný takový soubor nebo adresář:[Vyřešeno]

  2. Nelze spustit žádný takový soubor nebo adresář [Opravit]

  3. Nelze spustit mysql_config:Žádný takový soubor nebo adresář na Makefile.PL [Oprava]

  1. Odkazovat na soubor ve stejném adresáři skriptu nalezeného v $path?

  2. Python – žádný takový soubor nebo adresář, ale vidím to!?

  3. Mkdir:Nelze vytvořit adresář:Žádný takový soubor nebo adresář?

  1. Chyba:xenstore-read:xs_open:Žádný takový soubor nebo adresář na DomU [Vyřešeno]

  2. conda source deactivate :bash:deactivate:Žádný takový soubor nebo adresář

  3. touch:nelze se dotknout `foo':Žádný takový soubor nebo adresář