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....
-l
ist eine Linker-Option. Verwenden Sie-I
(Kapital i), um Include-Verzeichnisse hinzuzufügen . Warum haben Sie nicht einfach installiertlibsdl1.2-dev
?Antworten:
Wahrscheinlich haben Sie die Bibliotheken bereits installiert, ich zeige die Schritte aber der Vollständigkeit halber noch einmal.
SDL2
SDL1
Starten Sie die Kompilierung mit:
SDL2
SDL1
Beispielausgabe:
quelle