Sie nicht wollen, dass führende Periode
falsch
gcc filename.c -o test -I./include -L./usr/local/include/SDL2 -lSDL2main -lSDL2 -lSDL_mixer -lSDL_image
näher - unbedingt noch nicht korrekt
gcc filename.c -o test -L/usr/local/include/SDL2 -lSDL2main -lSDL2 -lSDL_mixer -lSDL_image
jeder Pfad mit einem führenden Zeitraum angibt, aus aktuellem Verzeichnis zu starten und gehen relativ anstelle des beabsichtigten absoluten Pfades
Jedes System hat th e Begriff einer Standardbibliothek, die in Ordnung ist, wenn Sie eine Standardinstallation verwenden ... also keine Notwendigkeit, ein
-I/include
... irgendwann eine Bibliothek Helfer tun, um diese zu identifizieren und automatisch bevölkert ...
sdl und SDL2 haben einen solchen Helfer ... dies wird Ihnen diese Einstellungen
gcc -o test filename.c `pkg-config --cflags --libs sdl2`
Mitteilung jene Backticks ... eine andere Syntax Stil wäre
gcc -o test filename.c $(pkg-config --cflags --libs sdl2)
Sie sind frei, das allein nur stehen zur Ausgabe von
pkg-config --cflags --libs sdl2
... einen Blick Ausgang
-D_REENTRANT -I/usr/include/SDL2 -lSDL2
Jetzt auf Ihrem sdl Mixer zu nehmen ... und es ist ein
pkg-config --cflags --libs SDL2_mixer
hat
... Ausgabe
Sie wollen wahrscheinlich nicht sdl mit SDL2 mischen Erwähnung
-lSDL_mixer -lSDL_image
mit
-lSDL2_mixer -lSDL2_image
gemäß
pkg-config --cflags --libs SDL2_image
so ersetzen ...Ausgabe
-D_REENTRANT -I/usr/include/SDL2 -lSDL2_image -lSDL2
, so dass diese zusammen
gcc -o test filename.c -lSDL2main $(pkg-config --cflags --libs sdl2) $(pkg-config --cflags --libs SDL2_mixer) $(pkg-config --cflags --libs SDL2_image)
oder einfacher kombiniert
gcc -o test filename.c -lSDL2main $(pkg-config --cflags --libs sdl2 SDL2_mixer SDL2_image)
diese Bündelung einfach folgende abgespeckte werden kann ... noch über Syntax ist robuster Änderungen
gcc -o test filename.c -D_REENTRANT -I/usr/include/SDL2 -lSDL2main -lSDL2 -lSDL2_mixer -lSDL2_image
Vielen Dank für die sehr detaillierte Antwort. Ich habe das noch nicht ausprobiert, aber ich bin sicher, es wird funktionieren! – TheCrifix
Die 'pkg-config' kann kombiniert werden' $ (pkg-config --cflags --libs sdl2 SDL2_mixer) ' –
@Scott Stensland Hey Scott, ich habe gerade den folgenden Kompilierbefehl benutzt, wie du vorgeschlagen hast: gcc -o test filename .c -lSDL2main $ (pkg-config --cflags --libs sdl2 SDL2_mixer SDL2_image) und es kompiliert, aber wenn es darum ging, das Programm zu testen, habe ich einen Fehler ausgelöst. Beim Testen meines Programms habe ich einen Fehler gemeldet, der besagt, dass ich kein verfügbares Videogerät habe. Irgendwelche Ideen? – TheCrifix