F
Hi, ich habe einige Probleme und schon Stunden gebastelt, aber finde einfach nicht meinen Fehler.
Vorgeschichte:
Habe mir eine kleine 2D-Engine mit OpenGL und GLUT gebastelt.
Dafür verwende ich das Visual Studio 2003 und alles klappt wunderbar.
Keine Warnungen, Fehlermeldungen etc. Die Engine läuft wie geschmiert.
Nun wollte ich GLFW, ein anders OpenGL Toolkit, anstatt GLUT verwenden, da dieses
aktueller und stabiler sein soll.
Um das Toolkit verwenden zu können, musste ich per vorgegebenen Makefile
dessen Quellcode erst compilieren und erhielt darauf 2 Libs und eine DLL.
So wie ich das verstanden habe, ist eine Lib davon eine statische Lib, wodurch
ich auf die DLL verzichten kann. Diese Lib namens glfw.lib habe ich dann in
meinen Project-Properties angegeben. Die beiden nötigen libs für OpenGL
binde ich standardmäßig dagegen folgendermaßen ein:
#ifndef OPENGL32_LIB
#define OPENGL32_LIB
#pragma comment(lib, "opengl32.lib")
#endif
#ifndef GLU32_LIB
#define GLU32_LIB
#pragma comment(lib, "glu32.lib")
#endif
So..ich habe nun alle 3 Libs, zwar auf unterschiedlichem Wege, eingebunden
und meine Engine läuft sauberst. Allerdings bekomme ich folgende
Warnmeldung immer beim compilieren:
LINK : warning LNK4098: defaultlib 'LIBC' conflicts with use of other libs; use /NODEFAULTLIB:library
Ok, solange alles läuft...soll mich diese Meldung nicht stören..(Was immer da auch im Konflikt ist).
ABER nun kommt das mir sehr unverständliche:
Folgendes Szenario läuft Prima, trotz Warnmeldung:
- glfw.lib in den [b]Projekteigenschaften[/b] angeben
- opengl32.lib per Pragma Comment angeben
- glu32.lib per Pragma Comment angeben
LINK : warning LNK4098: defaultlib 'LIBC' conflicts with use of other libs; use /NODEFAULTLIB:library
Folgendes Szenario macht, allerding nur wenn ich es mit "start without debugging" ausführe, enorme Grafikffehler!! :
- glfw.lib in den [b]Projekteigenschaften[/b] angeben
- opengl32.lib in den [b]Projekteigenschaften[/b] angeben
- glu32.lib in den [b]Projekteigenschaften[/b] angeben
LINK : warning LNK4098: defaultlib 'LIBC' conflicts with use of other libs; use /NODEFAULTLIB:library
Und folgendes Szenario macht ebenfalls enorme Grafikfehler, wenn ich es mit
"start without debugging" ausführe:
- glfw.lib per Pragma Comment angeben
- opengl32.lib per Pragma Comment angeben
- glu32.lib per Pragma Comment angeben
[b]LIBCMT.lib(crt0init.obj)[/b] : warning LNK4098: defaultlib 'libc.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
Scheinbar ist das einbinden über Pragma etwas anderes als das Einbinden
über die Projekt-Eigenschaften ? Oder darf man per Pragma generell keine statischen Libs einbinden und DLL Libs ausschließlich mit Pragma ? Irgendwie habe ich da noch nicht wirlich den Durchblick, weil die Engine ja einwandfrei funktioniert, wenn ich die Libs in einer bestimmten Kombination von Pragma/Projekteigenschaften einbinden lasse.
Weiss da jemand Rat ?