<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Generelle Verständnisprobleme beim Verwenden von Libs]]></title><description><![CDATA[<p>Hi, ich habe einige Probleme und schon Stunden gebastelt, aber finde einfach nicht meinen Fehler.</p>
<p>Vorgeschichte:<br />
Habe mir eine kleine 2D-Engine mit OpenGL und GLUT gebastelt.<br />
Dafür verwende ich das Visual Studio 2003 und alles klappt wunderbar.<br />
Keine Warnungen, Fehlermeldungen etc. Die Engine läuft wie geschmiert.<br />
Nun wollte ich GLFW, ein anders OpenGL Toolkit, anstatt GLUT verwenden, da dieses<br />
aktueller und stabiler sein soll.</p>
<p>Um das Toolkit verwenden zu können, musste ich per vorgegebenen Makefile<br />
dessen Quellcode erst compilieren und erhielt darauf 2 Libs und eine DLL.<br />
So wie ich das verstanden habe, ist eine Lib davon eine statische Lib, wodurch<br />
ich auf die DLL verzichten kann. Diese Lib namens glfw.lib habe ich dann in<br />
meinen <strong>Project-Properties</strong> angegeben. Die beiden nötigen libs für OpenGL<br />
binde ich standardmäßig dagegen folgendermaßen ein:</p>
<pre><code>#ifndef OPENGL32_LIB
		#define OPENGL32_LIB
		#pragma comment(lib, &quot;opengl32.lib&quot;)
	#endif

	#ifndef GLU32_LIB
		#define GLU32_LIB
		#pragma comment(lib, &quot;glu32.lib&quot;)
	#endif
</code></pre>
<p>So..ich habe nun alle 3 Libs, zwar auf unterschiedlichem Wege, eingebunden<br />
und meine Engine läuft sauberst. Allerdings bekomme ich folgende<br />
Warnmeldung immer beim compilieren:</p>
<p>LINK : warning LNK4098: defaultlib 'LIBC' conflicts with use of other libs; use /NODEFAULTLIB:library</p>
<p>Ok, solange alles läuft...soll mich diese Meldung nicht stören..(Was immer da auch im Konflikt ist).</p>
<p>ABER nun kommt das mir sehr unverständliche:</p>
<p>Folgendes Szenario läuft Prima, trotz Warnmeldung:</p>
<pre><code>- 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
</code></pre>
<p>Folgendes Szenario macht, allerding nur wenn ich es mit &quot;start without debugging&quot; ausführe, enorme Grafikffehler!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> :</p>
<pre><code>- 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
</code></pre>
<p>Und folgendes Szenario macht ebenfalls enorme Grafikfehler, wenn ich es mit<br />
&quot;start without debugging&quot; ausführe:</p>
<pre><code>- 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
</code></pre>
<p>Scheinbar ist das einbinden über Pragma etwas anderes als das Einbinden<br />
ü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 <strong>bestimmten Kombination</strong> von Pragma/Projekteigenschaften einbinden lasse.</p>
<p>Weiss da jemand Rat ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184438/generelle-verständnisprobleme-beim-verwenden-von-libs</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 18:30:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184438.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Jun 2007 10:16:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Generelle Verständnisprobleme beim Verwenden von Libs on Fri, 15 Jun 2007 10:18:43 GMT]]></title><description><![CDATA[<p>Hi, ich habe einige Probleme und schon Stunden gebastelt, aber finde einfach nicht meinen Fehler.</p>
<p>Vorgeschichte:<br />
Habe mir eine kleine 2D-Engine mit OpenGL und GLUT gebastelt.<br />
Dafür verwende ich das Visual Studio 2003 und alles klappt wunderbar.<br />
Keine Warnungen, Fehlermeldungen etc. Die Engine läuft wie geschmiert.<br />
Nun wollte ich GLFW, ein anders OpenGL Toolkit, anstatt GLUT verwenden, da dieses<br />
aktueller und stabiler sein soll.</p>
<p>Um das Toolkit verwenden zu können, musste ich per vorgegebenen Makefile<br />
dessen Quellcode erst compilieren und erhielt darauf 2 Libs und eine DLL.<br />
So wie ich das verstanden habe, ist eine Lib davon eine statische Lib, wodurch<br />
ich auf die DLL verzichten kann. Diese Lib namens glfw.lib habe ich dann in<br />
meinen <strong>Project-Properties</strong> angegeben. Die beiden nötigen libs für OpenGL<br />
binde ich standardmäßig dagegen folgendermaßen ein:</p>
<pre><code>#ifndef OPENGL32_LIB
		#define OPENGL32_LIB
		#pragma comment(lib, &quot;opengl32.lib&quot;)
	#endif

	#ifndef GLU32_LIB
		#define GLU32_LIB
		#pragma comment(lib, &quot;glu32.lib&quot;)
	#endif
</code></pre>
<p>So..ich habe nun alle 3 Libs, zwar auf unterschiedlichem Wege, eingebunden<br />
und meine Engine läuft sauberst. Allerdings bekomme ich folgende<br />
Warnmeldung immer beim compilieren:</p>
<p>LINK : warning LNK4098: defaultlib 'LIBC' conflicts with use of other libs; use /NODEFAULTLIB:library</p>
<p>Ok, solange alles läuft...soll mich diese Meldung nicht stören..(Was immer da auch im Konflikt ist).</p>
<p>ABER nun kommt das mir sehr unverständliche:</p>
<p>Folgendes Szenario läuft Prima, trotz Warnmeldung:</p>
<pre><code>- 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
</code></pre>
<p>Folgendes Szenario macht, allerding nur wenn ich es mit &quot;start without debugging&quot; ausführe, enorme Grafikffehler!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> :</p>
<pre><code>- 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
</code></pre>
<p>Und folgendes Szenario macht ebenfalls enorme Grafikfehler, wenn ich es mit<br />
&quot;start without debugging&quot; ausführe:</p>
<pre><code>- 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
</code></pre>
<p>Scheinbar ist das einbinden über Pragma etwas anderes als das Einbinden<br />
ü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 <strong>bestimmten Kombination</strong> von Pragma/Projekteigenschaften einbinden lasse.</p>
<p>Weiss da jemand Rat ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306405</guid><dc:creator><![CDATA[FinalbrainXP]]></dc:creator><pubDate>Fri, 15 Jun 2007 10:18:43 GMT</pubDate></item></channel></rss>