Entwickler-Ecke
Alle Sprachen - Alle Plattformen - glew linker Problem trotz gegebener Abhängigkeit
Symbroson - Do 28.12.17 06:00
Titel: glew linker Problem trotz gegebener Abhängigkeit
Moin EE,
Ich hab schon ewig gesucht, probiert und gemacht, aber nichts will funktionieren.
Eigentlich ist es ganz einfach: Ich habe in VisualStudio ein OpenGL Projekt, welches glew importiert.
Deshalb gebe ich auch die glew.lib in den Abhängigkeiten in VS an. Ich habe verschiedenste Quellen ausprobiert - aktuell habe ich wieder die von
http://glew.sourceforge.net
Die stellen auch die Win-Binaries bereit:
Download [
https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0-win32.zip/download]
Jetzt habe ich aber folgendes Problem:
Visual Studio-Log:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| 1>------ Erstellen gestartet: Projekt: Jumper, Konfiguration: Debug Win32 ------ 1>Jumper.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__glewInit@0" in Funktion ""void __cdecl init(void)" (?init@@YAXXZ)". 1>Jumper.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp____glewBindBuffer". 1>Jumper.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp____glewBufferData". 1>Jumper.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp____glewGenBuffers". 1>C:\Projects\VisualStudio\Jumper\Debug\Jumper.exe : fatal error LNK1120: 4 nicht aufgelöste Externe 1>Die Erstellung des Projekts "Jumper.vcxproj" ist abgeschlossen -- FEHLER. ========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ========== |
Es sieht ja fast so aus als würde ich die lib nicht verlinken, aber sie steht in den Projektabhängigkeiten drin.
Ich habe auch schon dieses #pragma linken probiert - funkt auch nicht.
im Quellcode selber importiere ich Folgendes:
C++-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| #include "targetver.h"
#include <stdio.h> #include <tchar.h> #include <stdlib.h> #include <stdint.h> #include <windows.h> #include <windows.h>
#include <GL/glew.h> #include <glm/glm.hpp> #include <GLFW/glfw3.h>
#include <vector>
#include <assimp/Importer.hpp> #include <assimp/scene.h> #include <assimp/postprocess.h> |
Zusätzliche Abhängigkeiten: $(LIB32) -> C:\Dev\Libs\x86\
Quelltext
1: 2: 3: 4: 5:
| $(LIB32)OpenGL32.Lib; $(LIB32)glew32s.lib; $(LIB32)glfw3.lib; $(LIB32)assimp.lib; %(AdditionalDependencies) |
mein C:\Dev\Libs\x86 Verzeichnis:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| $ ls -l /c/Dev/Libs/x86 total 7021 -rw-r--r-- 1 user Administratoren 19858 Nov 27 18:43 OpenAL32.lib -rw-r--r-- 1 user Administratoren 76920 Sep 28 16:34 OpenGL32.Lib -rw-r--r-- 1 user Administratoren 42698 Aug 30 2015 SDL.lib -rw-r--r-- 1 user Administratoren 147978 Dec 27 20:50 assimp.lib -rw-r--r-- 1 user Administratoren 2694592 Jun 25 2013 freeglut.lib -rw-r--r-- 1 user Administratoren 1514462 Jun 20 2013 glew.lib -rw-r--r-- 1 user Administratoren 2443636 Dec 27 20:30 glew32s.lib -rw-r--r-- 1 user Administratoren 245676 Oct 20 2016 glfw3.lib |
Außerdem kam noch ein weiterer Fehler
Quelltext
1:
| 1>LINK : warning LNK4098: Standardbibliothek "MSVCRT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. |
den ich dann in der Kategorie 'Befehlszeile' in VS ausgeschalten habe:
/NODEFAULTLIB:MSVCRT
Ich hoffe ich habe alles wesentliche angegeben und dass mir jemand sagen kann was ich vergessen habe. Es hat ja seltsamerweise schonmal funktioniert. Nur musste ich meine lib und dll Sammlung mal in 32 und 64 Bit aufteilen und sozusagen alles neu herunterladen - leider hat offensichtlich nicht alles geklappt wie ich es wollte...
Danke im Vorraus :)
Symbroson
Th69 - Do 28.12.17 11:01
Ich sehe nicht, daß du die glew.lib in den zusätzlichen Abhängigkeiten aufgelistet hast?!
Symbroson - Do 28.12.17 11:03
doch, als glew32s.lib
ich hab auch die andere glew.lib datei ausprobiert - beides das gleiche Ergebnis
Zitat: |
Auch, wenn du beide angibst? |
jap.
Wenn ich die glew32.lib (ohne das 's') aus der Sourceforge zip nutze will er auch die dll haben (die glew32s.lib ist auch deutlich größer) - und auch das ändert nichts
Ich habe mal spaßenshalber in glew32s.lib nach glewBindBuffer, glewBufferData und glewGenBuffers gesucht - da sind sie eigentlich
Und wenn ich glew.lib komplett aus den Abhängigkeiten entferne kommt genau dieselbe Meldung :nixweiss:
Symbroson - Do 28.12.17 11:34
Ich hab es jetzt nochmal über nutget versucht - nur dass ich das Paket installiert lasse (ich hab mir die header, libs und dlls vorher alle in mein Dev/ verzeichnis kopiert und das Paket wieder deinstalliert.
Also die nutget glew version ist 1.9.0.1
Ich habe im Include jetzt stehen
Quelltext
1: 2: 3: 4:
| C:\Projects\VisualStudio\Jumper\packages\glew.1.9.0.1\build\native\include; $(INCLUDE) //-> C:\Dev\Header\ C:\Projects\VisualStudio\Jumper\Jumper\.; C:\Projects\VisualStudio\Jumper\Jumper\external\assimp-3.0.1270\include; |
und in den Abhängigkeiten
Quelltext
1: 2: 3: 4: 5:
| $(LIB32)glfw3.lib; $(LIB32)assimp.lib; $(LIB32)OpenGL32.Lib; C:\Projects\VisualStudio\Jumper\packages\glew.1.9.0.1\build\native\lib\v110\Win32\Release\static\glew.lib; %(AdditionalDependencies) |
Symbroson - Do 28.12.17 11:50
Ok scheinbar hat das das Problem behoben :D also die glew linkfehler kommen schonmal nicht mehr
Vielen Dank! :zustimm:
ABER Stattdessen passiert folgendes
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| 1>------ Erstellen gestartet: Projekt: Jumper, Konfiguration: Debug Win32 ------ 1>stdafx.cpp 1>Jumper.cpp 1>glew.lib(glew.obj) : Es wurde ein mit /GL kompiliertes MSIL .netmodule oder module gefunden. Verknüpfung wird mit /LTCG erneut gestartet. Fügen Sie /LTCG zur Linkbefehlszeile hinzu, um die Linkerleistung zu erhöhen. 1>LINK : warning LNK4075: /INCREMENTAL wird aufgrund der Angabe von /LTCG ignoriert. 1>LINK : warning LNK4098: Standardbibliothek "MSVCRT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. 1>LINK : warning LNK4098: Standardbibliothek "LIBCMT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. 1>Code wird generiert. 1>Codegenerierung ist abgeschlossen. 1>glew.lib(glew.obj) : warning LNK4099: PDB "vc110.pdb" wurde nicht mit "glew.lib(glew.obj)" oder an "C:\Projects\VisualStudio\Jumper\Debug\vc110.pdb" gefunden; Objekt wird verkn³pft, als ob keine Debuginformationen vorhanden wõren. 1>Jumper.vcxproj -> C:\Projects\VisualStudio\Jumper\Debug\Jumper.exe 1>Erstellen des Projekts Jumper.vcxproj beendet. ========== Erstellen: 1 erfolgreich, 0 fehlerhaft, 0 aktuell, 0 übersprungen ========= |
Mal sehen was das zu bedeuten hat ^^
Danke erstmal für deine Hilfe!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!