La maggior parte delle volte SDL è in /usr/include/SDL
. Se è così allora il tuo #include <SDL.h>
direttiva è sbagliata, dovrebbe essere #include <SDL/SDL.h>
.
Un'alternativa è aggiungere il /usr/include/SDL
directory alle directory di inclusione. Per farlo devi aggiungere -I/usr/include/SDL
ai flag del compilatore...
Se stai usando un IDE anche questo dovrebbe essere abbastanza facile...
Se il file di intestazione è /usr/include/sdl/SDL.h
e il tuo codice ha:
#include "SDL.h"
Devi correggere il tuo codice:
#include "sdl/SDL.h"
Oppure indica al preprocessore dove trovare i file include:
CFLAGS = ... -I/usr/include/sdl ...
il file di intestazione si trova in
/usr/include/SDL/SDL.h
__OR__
/usr/include/SDL2/SDL.h # for SDL2
nel tuo codice c++ inserisci questa intestazione usando
#include <SDL.h>
__OR__
#include <SDL2/SDL.h> // for SDL2
hai l'uso corretto di
sdl-config --cflags --libs
__OR__
sdl2-config --cflags --libs # sdl2
che ti darà
-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
a volte potresti anche vedere questo utilizzo che funziona per un'installazione standard
pkg-config --cflags --libs sdl
__OR__
pkg-config --cflags --libs sdl2 # sdl2
che ti fornisce
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -lSDL
__OR__
-D_REENTRANT -I/usr/include/SDL2 -lSDL2 # SDL2
Per Simple Direct Media Layer 2 (SDL2), dopo averlo installato su Ubuntu 16.04 tramite:
sudo apt-get install libsdl2-dev
Ho usato l'intestazione:
#include <SDL2/SDL.h>
e il comando linker del compilatore:
-lSDL2main -lSDL2
Inoltre, potresti anche voler installare:
apt-get install libsdl2-image-dev
apt-get install libsdl2-mixer-dev
apt-get install libsdl2-ttf-dev
Con queste intestazioni:
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_ttf.h>
#include <SDL2/SDL_mixer.h>
ei comandi del linker del compilatore:
-lSDL2_image
-lSDL2_ttf
-lSDL2_mixer