OpenGL MinGW

Der Folgende Text behandelt Linker-Fehler der Art:
project\src\shader.cpp|19|undefined reference to `_imp____glewCreateShader'
project\src\shader.cpp|83|undefined reference to `_imp____glewCreateProgram'


Was tut man nicht alles für die Uni.

Für den Gegenstand Echtzeitgrafik soll eine kleine Demo hergestellt werden und ein paar Effekte eingebaut werden.

Jetzt ist aber mein CG2 (der gegenstand wo ich das letzte mal in openGL was gemacht hab) doch schon gut 10 Semester her. Und es liegen auch gut 2 Major-Versions von openGL dazwischen. Ja, ich weiß dass es rückwärts kompatibel ist, ABER es muss mindestens 3.3 core profile verwendet werden. Also hab ich mich auf die Suche nach einem Tutorial gemacht das die Grundlegenden Änderungen aufzeigt und dabei stieß ich auf folgendes Problem:

Wie setzt man ein simples Projekt auf das unter MinGW mit dem GCC compiliert?
Diese Frage hat mich doch einige Zeit gekostet und darum halte ich das hier fest.

1. Wenn man vorcompilierte Libraries verwendet dann darauf achten die zu verwenden die für/mit MinGW compiliert wurden. (Dieses war vorallem bei glfw der Fall - Hier gibt es bei den precompiled libs versionen für MinGW)

2. Egal was man tut, glew sollte man auf jedenfall selbst compilieren, es haut sonst einfach nicht hin. Ist aber denkbar einfach:
2.1 minGW-Shell öffnen
2.2 $ mount
2.3 $ cd /drive/pfad/zum/glew (hier ist der pfad gemeint unter dem im glew das Makefile (für die die es nicht wissen "Makefile" ist auch der name der Datei siehe make) liegt.
2.4 $ make
2.6 kopiere die .a, .dll und .h dateien an die richtigen stellen im Projekt.

2.6 sollte make oder gcc oder sonst was fehlen kann man das nach installieren:
$ mingw-get install

Ich hab für mein Projekt CodeBlocks verwendet und auch eingerichtet. Folgendes sollte/muss getan werden:

Buildsettings: Project->build Options

Man wähle das Projekt (nicht debug, nicht release) und ...
-klick auf Linker-Settings:

add -> die .lib und .a dateien auswählen (alle müssen aufgelistet sein)

-klick auf search Directories:
Compiler:
add -> Ordner mit den eigenen sourcen
add -> Ordner mit den .h aus libraries z.B. der wo glew.h liegt

Linker:
add -> Ordner wo die .lib und .a Dateien liegen
add -> Ordner wo die .dll Dateien liegen

OK

Natürlich muss man schon auch die eigenen Source-Dateien ins Project adden und so, aber ich geh davon aus dass das kein Hindernis darstellt.

Es kann jetzt noch sein dass man beim ersten start von CodeBlock nicht MinGW (sprich GCC) ausgewählt hat. hierfür kann man unter:
File->Properties...->Advanced
Noch den Compiler einstellen.

Im Prinzip war es das. Jetzt sollte das Projekt ohne Linker-Fehler laufen.

Sollte das irgendwann irgendjemanden helfen, würde ich mich über einen kurzen Kommentar freuen.

Copyright

All rights reserved by Me. © 2004-2020
Please do not copy any content of this WebLog without my written allowance.

Aktuelle Beiträge

CSS echo effect
Letztens hatte ich mit einem Kollegen das Thema wegen...
rothi - 15. Mär, 09:12
sed 's/ /@/g' ../sha256sums.txt cut...
sed 's/ /@/g' ../sha256sums.txt cut -d @ -f 1 sha256sums.txt...
rothi - 4. Jan, 15:56
reencode all Files
Wer je das Problem hat dass die Videos die die man...
rothi - 27. Feb, 10:12
a macing
When you meet someone, always make sure that it is...
rothi - 9. Aug, 15:37
gentle restart linux
Wenn Linux komplet freezed und nicht mal strg+alt+entf...
rothi - 7. Aug, 10:34

Links

Gelesen


Jan Michalsky
Süd Salatonien

W. Hohlbein
Enwor Saga

Douglas Adams
Per Anhalter durch die Galaxis


A. R. R. R. Roberts, Adam Roberts, Ute Brammertz
Der kleine Hobbnix


Joanne K. Rowling
Harry Potter und d** *******

John R. R. Tolkien
Der kleine Hobbit, Sonderausgabe


Wolfgang Hohlbein, Heike Hohlbein
Midgard


Stan Nicholls, Christian Jentzsch
Die Orks


Markus Heitz
Die Zwerge

R. Feist
Midkemia Saga 1-8


Krondor Saga 1-3

Raymond E. Feist
Die Kelewan-Saga 1- 8


Ursula K. LeGuin, Margot Paronis, Hilde Linnert, Ursula K. Le Guin
Erdsee. 4 Romane in einem Band


David Eddings, Leigh Eddings
Polgara die Zauberin


Terry Brooks, George Lucas
Star Wars Episode 1. Die dunkle Bedrohung.


Terry Pratchett, Andreas Brandhorst
Alles Sense! Ein Scheibenwelt-Roman


Terry Pratchett, Andreas Brandhorst
Gevatter Tod. Ein Roman von der bizarren Scheibenwelt.


Artenschutz
Berichte
Buchbericht
Free for all!!!
Gedichte
Geschichte
Michl Zitate
Puns
Studium
The sky is grey
typo3
Weisheiten
Profil
Abmelden
Weblog abonnieren