2016-07-12 18 views
0

Ich habe Probleme, ein einfaches OpenGL-Programm. ich einige der Forschung haben und fand OpenGL-Programme zu machen, ich braucheWie erstelle ich mein erstes OpenGL-Programm

  • SFML - Für Fenster
  • GLEW Erstellung - Zur Erweiterung

Handhabung Ich habe es für eine Weile SFML benutze funktioniert gut. Im Anschluss an die offizielle SFML Seite, und das Hinzufügen einer zusätzlichen Linker-Option: -l opengl32 ich die typische kompilieren verwaltet OpenGL-mit-SFML Code Here.

So gezeigt bewegt i auf OpenGL-Anwendungen zu machen, aber ich konnte nicht Kompilieren Sie alle Tutorials im Netz, aufgrund von undefinierten Referenzen auch nach dem Einrichten von GLEW. Jetzt habe ich this piece of code von der am wenigsten geschätzten Antwort von here genommen. Ich habe die Anweisungen von diesem Beitrag gefolgt, aber immer noch Fehler:

C: \ prog \ GLEW \ 1.13 \ lib \ libglew32.a (glew.obj): glew.c || undefined reference to `wglGetProcAddress @ 4'

Ich bin mit

  • Windows-10
  • Codeblöcke 16.1
  • Standard MinGW mit Codeblöcken
  • (SFML, GLEW)
verpackt

** Bearbeiten: **

Mein voll Build-Log:

-------------- Build: Debug in opengl_minus1 (compiler: GNU GCC Compiler)--------------- 

mingw32-g++.exe -LC:\prog\SFML\2.3.2\lib -LC:\prog\GLEW\1.13\lib -o bin\Debug\opengl_minus1.exe obj\Debug\main.o -l opengl32 C:\prog\SFML\2.3.2\lib\libsfml-graphics.a C:\prog\SFML\2.3.2\lib\libsfml-window.a C:\prog\SFML\2.3.2\lib\libsfml-system.a C:\prog\GLEW\1.13\lib\libglew32.a 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x29c): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x2b8): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x2d4): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x2e8): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x2fc): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x310): more undefined references to `[email protected]' follow 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x1786c): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x178bf): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x1792f): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x17943): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x1795e): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x179da): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x17b60): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x17b7c): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x17b9a): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x17f7c): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x17f98): more undefined references to `[email protected]' follow 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x19def): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x19f40): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x19f85): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x19fa1): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x19fbd): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x19fd6): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x1a08f): undefined reference to `[email protected]' 
C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj):glew.c:(.text+0x1a0ab): more undefined references to `[email protected]' follow 
C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: C:\prog\GLEW\1.13\lib\libglew32.a(glew.obj): bad reloc address 0x13a98 in section `.rdata' 
C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation 
collect2.exe: error: ld returned 1 exit status 
Process terminated with status 1 (0 minute(s), 0 second(s)) 
26 error(s), 0 warning(s) (0 minute(s), 0 second(s)) 
+1

Sie Link auf 'opengl32'? – tkausl

+0

Jemand hat mich vorgeschlagen ** - l opengl32 ** Ich glaube, es macht den Job. –

+0

Um Hilfe mit einer fehlerhaften Verbindung zu erhalten, müssen Sie mindestens den fehlerhaften Verbindungsbefehl und die Fehler, die sich daraus ergeben, wörtlich aus der Build-Ausgabe veröffentlichen. Fügen Sie diese Informationen in den Hauptteil Ihrer Frage ein. –

Antwort

0

Der undefinierte Bezug auf wglGetProcAddress tritt in Mitglied glew.obj der Bibliothek libglew32 Die Funktion wglGetProcAddress in libopengl32 definiert ist, aber nicht verbunden ist, weil die Verknüpfung Reihenfolge der Bibliotheken ist die falsch herum.

In der Verknüpfungssequenz, Dateien, die vor der Symboldefinitionen müssen auftreten müssen diejenigen, die die Definitionen liefern, , da der Linker nur wird ein Objektmodul aus einer Bibliothek verknüpfen, wenn es eine Definition von mindestens einem Symbol bereitstellt, ist bereits in der Verknüpfung referenziert, aber noch nicht definiert.

So Link -lopengl32 nach libglew32.a