Kompilieren in einem C-Programm verwendet OpenGl unter Mac OS X
Ich versuche zu kompilieren eines C-Programms für meinen CS-Klasse. Ich habe die Befehlszeilen-tools installiert auf meinem Mac, also habe ich wohl OpenGL. Die Beschreibung des Programms wurde für Ubuntu, und es sagt für mich zu kompilieren mit:
gcc -Wall -ansi -pedantic -O2 main.o graphic.o imagem.o io.o -o ep2 -lGL -lGLU -lglut
Lief ich, und es sagte:
ld: library not found for -lGL
Welche flags muss ich verwenden? Was kann ich tun?
- Brauchen Sie wirklich alle
-lGL -lGLU -lglut
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In MacOS X sind Sie nicht die Verwendung von Bibliotheken zu zählen system-level-APIs, aber Frameworks. Die richtige Befehlszeile zu kompilieren, dieses Programm wäre
Beachten Sie, dass GLU ist wahrscheinlich Teil der OpenGL-framework sowie. Und es kann erforderlich sein, installieren GLUT erste.
-lGL
auf MacOS X. Sie verwenden den OpenGL-framework gibt. Oh, und im source-code müssen Sie wahrscheinlich ersetzen#include <GL/gl.h>
mit#include <OpenGL/gl.h>
. Apple stark leidet " nicht hier erfunden syndrom.ld: library not found for -lGLU
. Irgendeine Idee?#include <OpenGL/glu.h>
in Ihrem source-code und die-framework OpenGL
im Makefile sind alle, die Sie brauchen, es zu benutzen. Ebenso gibt es eine GLUT-framework; nutzen#include <GLUT/glut.h>
und-framework GLUT
auf OS X. Stellen Sie sicher, etwas zu verwenden, wie#ifdef __APPLE__
bei der Bestimmung, wie#include
den Header, der rest der Welt neigt dazu, Folgen der Konvention:<GL/gl.h>
🙂-lGL
? Das ist Unsinn! Verloren eine Stunde an diesem. Es funktioniert mit-framework OpenGL
.libGL.so
(verbunden über-lGL
) ist die interface-Bibliothek, erforderlich für X11/GLX-Ausführung Weg. So kann auf eine typische macOS-system können Bibliotheken gefunden werden, aber nur eine von Ihnen (die in der OpenGL-framework) wirkt durch die nativen GUI-system.