Schwerwiegender Fehler: SDL / SDL.h: Keine solche Datei oder kein solches Verzeichnis [geschlossen]

9

Ich versuche, Lektion_1 unter https://tutorialsplay.com/opengl/2014/04/23/textured-cube/ zu üben.

Als ich den Code mit dem Namen cube.c ausführte, bekam ich

cube.c:16:21: fatal error: SDL/SDL.h: No such file or directory
 #include <SDL/SDL.h>
                     ^

compilation terminated.

Ich habe SDL2 unter Anleitung unter https://github.com/PluginIO/EX3/wiki/Setting-up-SDL2-in-Ubuntu-12.10 installiert

Ich benutze 14.04 obwohl ..

Die Installation von SDL2 war erfolgreich. Ich habe keinen Fehler erhalten.

Die SDL.h-Datei befindet sich in "/ usr / local / include / SDL2".

Ich habe versucht, die Verwendung der Vollpfadverknüpfung per Befehl zu erzwingen

gcc cube.c -lglut -lGL -lGLU -l/usr/local/include/SDL2

anstatt

gcc cube.c -lglut -lGL -lGLU -lSDL

Aber alle waren vergebens ...

Kennt jemand eine Lösung für dieses Verknüpfungsproblem?

Wie Muru betonte, habe ich zu Captial gewechselt. Ich habe die Meldung "Fehler: Unbekannter Typname 'SDL_keysym'" erhalten.

Ein anderer Weg, den ich entdeckte, war

ich habe mich verändert

#include <SDL/SDL.h> 

zu

#include <SDL2/SDL.h>

Zeigt nicht mehr "schwerwiegender Fehler: SDL / SDL.h: Keine solche Datei oder kein solches Verzeichnis" an. Daher gilt dies vorerst als gelöst. Ich erhalte jedoch die folgenden Fehler, die in einem separaten Thread veröffentlicht werden.

cube.c:105:22: error: unknown type name ‘SDL_keysym’
 void handleKeyPress( SDL_keysym *keysym )
                      ^
cube.c: In function ‘main’:
cube.c:239:5: error: unknown type name ‘SDL_VideoInfo’
     const SDL_VideoInfo *videoInfo;
     ^

AB: Ich habe die Ausgabe Ihrer vorgeschlagenen Befehle unten eingefügt.

gcc cube.c `pkg-config --cflags --libs sdl`
Package sdl was not found in the pkg-config search path.
Perhaps you should add the directory containing `sdl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'sdl' found



gcc cube.c `pkg-config --cflags --libs sdl2`
cube.c:105:22: error: unknown type name ‘SDL_keysym’
 void handleKeyPress( SDL_keysym *keysym )
                      ^
cube.c: In function ‘main’:
cube.c:239:5: error: unknown type name ‘SDL_VideoInfo’
     const SDL_VideoInfo *videoInfo;
     ^
errors continue....
Evan S.
quelle
3
-list eine Linker-Option. Verwenden Sie -I(Kapital i), um Include-Verzeichnisse hinzuzufügen . Warum haben Sie nicht einfach installiert libsdl1.2-dev?
Muru
@muru: Danke für den Hinweis. Ich habe zu Captial gewechselt. Ich habe die Meldung "Fehler: Unbekannter Typname 'SDL_keysym'" erhalten. Ich werde die Fehler in einem separaten Thread veröffentlichen. Die Antwort Ihrer zweiten Frage ist bei askubuntu.com/questions/626230/…
Evan S
@muru: Kannst du deine Lösung auf die Antwort posten? Damit ich die Antwort auswählen kann.
Evan S

Antworten:

15

Wahrscheinlich haben Sie die Bibliotheken bereits installiert, ich zeige die Schritte aber der Vollständigkeit halber noch einmal.

  • SDL2

    sudo apt-get install libsdl2-dev
    
  • SDL1

    sudo apt-get install libsdl1.2-dev
    

Starten Sie die Kompilierung mit:

  • SDL2

    gcc cube.c `pkg-config --cflags --libs sdl2`
    
  • SDL1

    gcc cube.c `pkg-config --cflags --libs sdl`
    

Beispielausgabe:

% pkg-config --cflags --libs sdl               
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -lSDL

% pkg-config --cflags --libs sdl2
-D_REENTRANT -I/usr/include/SDL2 -lSDL2
AB
quelle
Vielen Dank für Ihre Antwort AB! Eigentlich habe ich ein Problem mit der Installation von libsdl1 und 2. Bitte kommentieren Sie askubuntu.com/questions/626230/…. Ich habe die Ausgabe Ihres Vorschlags auf Frage eingefügt.
Evan S
für mich sudo apt-get install libsdl1.2-dev funktionierte nicht das erstere :) Danke!
Mona Jalal