LNK1104 - glew

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Novalizer
Beiträge: 10
Registriert: 26.12.2013, 20:51

LNK1104 - glew

Beitrag von Novalizer »

Da ich mich jetzt schon ein paar Tage im Forum umgschaut habe bin ich auf die Empfehlung gestoßen folgendes Tutorial: "http://www.opengl-tutorial.org/" zum Einstieg durchzuarbeiten. Soweit so gut, nachdem ich erste Hürden mit CMake überwunden hatte, die neue GLFW lib Version 3 erfolgreich eingebunden habe, hält mich glew davon ab richtig loszulegen.

Also, ich habe mit Version 1.9 und 1.10 von GLEW folgendes probiert:

1. Zip entpacken
2. In Visualstudio die Anweisung #include <GL/glew.h> eingfügt
3. Projekteigenschaften (Für alle Konfigurationen), unter C/C++ zusätzliche Includeverzeichnisse habe ich den Pfad ".....glew-1.9.0-win64\glew-1.9.0\include" angegeben
4. Dem Linker habe ich als zusätzliches Bibliotheksverzeichnis den Pfad ".....glew-1.9.0-win64\glew-1.9.0\lib" angegeben
5. Unter Eingabe habe ich dem Linker gesagt er soll die "glew.lib" an oberster Stelle einbinden (auch schon mit glew32.lib versucht).

Nun gibt mir VisualStudio die schöne Fehlermeldung aus:
"error LNK1104: Datei "glew.lib" kann nicht geöffnet werden."

Ich arbeite noch nicht lange mit VisualStudio es ist die Professional Version 2012. Um eben direkt richtig anzufangen wollte ich auch die librarys selber einbinden.
Für Hilfe jeglicher Art wäre ich sehr dankbar.

Viele Grüße
Nova
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: LNK1104 - glew

Beitrag von CodingCat »

Novalizer hat geschrieben:4. Dem Linker habe ich als zusätzliches Bibliotheksverzeichnis den Pfad ".....glew-1.9.0-win64\glew-1.9.0\lib" angegeben
5. Unter Eingabe habe ich dem Linker gesagt er soll die "glew.lib" an oberster Stelle einbinden (auch schon mit glew32.lib versucht).

Nun gibt mir VisualStudio die schöne Fehlermeldung aus:
"error LNK1104: Datei "glew.lib" kann nicht geöffnet werden."
Blöde Frage, aber geht nicht aus deinem Beitrag hervor: Gibt es die Datei glew.lib denn in glew-1.9.0-win64\glew-1.9.0\lib? Normalerweise liegt die Bibliothek in ...glew-1.9.0\lib\Release\x64 für 64-Bit-Kompilate und ...glew-1.9.0\lib\Release\Win32 für 32-Bit-Kompilate und heißt in beiden Fällen glew32.lib. Sollte es überhaupt keine solche Bibliotheksdatei geben, dann entweder fertig gebaut runterladen oder selber kompilieren.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Novalizer
Beiträge: 10
Registriert: 26.12.2013, 20:51

Re: LNK1104 - glew

Beitrag von Novalizer »

Es gibt keine blöden Fragen ;). Also, in der Version 1.10 ist es genau wie von dir beschrieben und in der Version 1.9 liegen die lib-files alle im libOrdner. Nun nachdem ich jetzt Visualstudio neugestartet habe und die Pfade nochmal durchgegangen bin scheint er die lib jetzt endlich zu erkennen. Nun Habe ich aber ein anderes Problem die Konsole steht voller:
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp_DescribePixelFormat" in Funktion "_glfwCreateContext".

Also wieder Probleme mit glfw. Schonmal danke für die schnelle Antwort vielleicht gibts ja auch eine Lösung für die neue Fehlermeldung.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: LNK1104 - glew

Beitrag von dot »

gdi32.lib und opengl32.lib gelinked?
Novalizer
Beiträge: 10
Registriert: 26.12.2013, 20:51

Re: LNK1104 - glew

Beitrag von Novalizer »

Die beiden libs, sind unter vererbte Abhängigkeiten beim Linker vorhanden. Aber ich weiß nicht, muss man die nochmal explizit hinzufügen?

(Gar nicht so einfach mit den Libraries, da ist man aus Eclipse mit Java/Android anderes gewöhnt.)
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: LNK1104 - glew

Beitrag von CodingCat »

Kompilierst du für x64 oder für x86? Hast du für deine Zielplattform von allen Bibliotheken die richtige Version für dieselbe Zielplattform? Wenn du versehentlich x86 und x64 mischst, bekommst du auch nur nichtaufgelöste Verweise und leider keine weitere Fehlermeldung.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Novalizer
Beiträge: 10
Registriert: 26.12.2013, 20:51

Re: LNK1104 - glew

Beitrag von Novalizer »

x64 für alle Konfigurationen eingestellt, libraries in der 64 bit Version. Heute nochmal für win 32 ausprobiert. Der Fehler bleibt der genau gleiche. Gibts noch weitere Vorschläge, bin für jeden Rat dankbar.

Hier mal noch ein Auszug aus der Fehlerkonsole:
error LNK1120: 8 nicht aufgelöste Externe
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glGetIntegerv@8" in Funktion "__glfwRefreshContextAttribs".
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glGetString@4" in Funktion "_glfwExtensionSupported".
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__wglCreateContext@4" in Funktion "__glfwCreateContext".
waigie
Beiträge: 82
Registriert: 20.05.2009, 19:37

Re: LNK1104 - glew

Beitrag von waigie »

Das sieht wie dot bereits erwähnt sehr stark danach aus, das du die opengl32.lib nicht gelinkt hast. In dieser sind die fehlenden Symbole gl* und wgl*
Novalizer
Beiträge: 10
Registriert: 26.12.2013, 20:51

Re: LNK1104 - glew

Beitrag von Novalizer »

Okay Okay, wir kommen der Sache näher. Merkwürdigerweiße war die opengl32.lib nicht eingebunden, wenn ich für alle Konfigurationseinstellungen die Additional Dependencies definiert habe.
Nachdem ich die library eingefügt habe sind alle Fehlermeldungen verschwunden :).

Wenn ich aber das Projekt ausführe, geht die Konsole auf und anschließend eine Fehlermeldung auf, welche besagt

"Das Programm kann nicht gestartet werden, da glew32.dll auf dem Computer fehlt. Installieren Sie das Programm erneut, um das Problem zu beheben."

Pfad zur glewlib überprüft und die entsprechende Datei existiert dort auch.
__________________________________________________________________________________________________________________________________________________________________________________________________

Okay, kleines Update ich hatte vergessen die dll's in den Projektordner zu schieben er hatte sie nur nicht gefunden. Jedoch, wenn ich jetzt meine Applikation starte kann er glew nicht initialisieren :/.
glewExperimental=true;
if (glewInit() != GLEW_OK) {
fprintf(stderr, "Failed to initialize GLEW\n");
}
Der Rückgabewert scheint nicht GLEW_OK zu sein.
Novalizer
Beiträge: 10
Registriert: 26.12.2013, 20:51

Re: LNK1104 - glew

Beitrag von Novalizer »

Okay letztes Update, es läuft alles soweit. glfwMakeContextCurrent(window); hat gefehlt. Ich musste den Kontext dort noch einfügen, dass ist natürlich die Schattenseite an älteren Tutorials manche Dinge ändern sich bei den Libraries. Aber dank des tollen Supports hier konnte mein Problem ja schnell gelöst werden und gelernt habe ich auch noch was dabei, deswegen nochmals ein Dankeschön an alle. ;)
Antworten