Kompilieren einer minimalen GLEW-Anwendung unter Cygwin

Betrachten wir das folgende Programm und versuchen Sie es unter Cygwin zu kompilieren:

#include <GL/glut.h>
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glLoadIdentity();
}

s kompiliert und läuft einwandfrei.-I/usr/include/opengl scheint schrecklich wichtig zu sein.

g++ -I/usr/include/opengl -I../include/cygwin -L../lib/cygwin test.cpp -o test.exe -lglut32 -lglu32 -lglew32 -lopengl32

Jetzt

#include <GL/glew.h> // from newest NVIDIA SDK
#include <GL/glut.h>
int main(int argc, char** argv)
{
    glewInit();
    glutInit(&argc, argv);
    glLoadIdentity();
}

compiled by

g++ -I/usr/include/opengl -I../include/cygwin -L../lib/cygwin test.cpp -o test.exe -lglut32 -lglu32 -lglew32 -lopengl32

schlägt fehl. Wie erstelle ich die zweite Anwendung?

Zuers

Es gibt verschiedene Möglichkeiten, GLEW von NVIDIA SDK zu erstellen: von VS, von Cygwin, von Cygwin mit -D_WIN32. Ich habe auch versucht, Cygwin aus dem Original zu bauen.

VS Build gibt

/cygdrive/c/DOCUME~1/kelebron/LOCALS~1/Temp/ccErbecl.o:test.cpp:(.text+0xa8): undefined reference to `_glLoadIdentity'
collect2: ld returned 1 exit status

cygwin Builds geben viele

../lib/cygwin/glew32.lib(glew.o):glew.c:(.text+0x38e): undefined reference to `_glXGetProcAddress'

und cygwin mit -D_WIN32 kompiliert überhaupt nicht (ich war leicht motiviert vondieser Beitra).

Zweit

Es scheint zwei Möglichkeiten zu geben, sich mit OpenGL zu verbinden
with -L / lib / w32api
oder mit -L / usr / X11R6 / lib -lX11 -lXi -lXmu

Aber die -L-Direktiven ändern nichts. Ich habe /usr/lib/w32api/libopengl32.a, aber möglicherweise fehlt die X11-Version (/ usr / X11R6 / lib / libGL?). Welches Paket sollte ich in Cygwin einbinden? Ich habe alles beginnend mit libGL installiert (nicht nur ...).

Antworten auf die Frage(8)

Ihre Antwort auf die Frage