Autor Beitrag
Symbroson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Do 28.12.17 06:00 
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 glew.sourceforge.net
Die stellen auch die Win-Binaries bereit: Download
Jetzt habe ich aber folgendes Problem:

Visual Studio-Log:
ausblenden 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:
ausblenden 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\
ausblenden 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:
ausblenden 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
ausblenden 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

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 28.12.17 11:01 
Ich sehe nicht, daß du die glew.lib in den zusätzlichen Abhängigkeiten aufgelistet hast?!
Symbroson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: 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:

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)


Zuletzt bearbeitet von Symbroson am Do 28.12.17 11:11, insgesamt 4-mal bearbeitet
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 28.12.17 11:04 
Auch, wenn du beide angibst?

Edit: Unter Using GLEW, GLFW, and GLM (Step 4) steht, daß glew32s die statische Lib ist und dann wird noch extra
ausblenden Quelltext
1:
#define GLEW_STATIC					

vor Einbindung der glew.h vorgenommen.
Symbroson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: 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
ausblenden 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
ausblenden 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)

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
Symbroson Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 382
Erhaltene Danke: 67

Raspbian, Ubuntu, Win10
C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
BeitragVerfasst: Do 28.12.17 11:50 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Auch, wenn du beide angibst?

Edit: Unter Using GLEW, GLFW, and GLM (Step 4) steht, daß glew32s die statische Lib ist und dann wird noch extra
ausblenden Quelltext
1:
#define GLEW_STATIC					

vor Einbindung der glew.h vorgenommen.

Ok scheinbar hat das das Problem behoben :D also die glew linkfehler kommen schonmal nicht mehr
Vielen Dank! :zustimm:

ABER Stattdessen passiert folgendes
ausblenden 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!

_________________
most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)