<?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[Libs für jede C++ Datei linken?]]></title><description><![CDATA[<p>Hi,</p>
<p>Muss ich für jede *.cpp-Datei (in meinem Projekt), die eine von mir erstellte DLL bzw deren Lib benutzt, die Library jedes mal mit #pragma comment(lib, &quot;BIB.lib&quot;) linken bzw kann ich das, bzw. ist das sinnvoll ?</p>
<p>ThXX <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/150387/libs-für-jede-c-datei-linken</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Jul 2026 03:22:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/150387.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 15 Jun 2006 20:44:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Libs für jede C++ Datei linken? on Thu, 15 Jun 2006 20:44:46 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Muss ich für jede *.cpp-Datei (in meinem Projekt), die eine von mir erstellte DLL bzw deren Lib benutzt, die Library jedes mal mit #pragma comment(lib, &quot;BIB.lib&quot;) linken bzw kann ich das, bzw. ist das sinnvoll ?</p>
<p>ThXX <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078530</guid><dc:creator><![CDATA[HelpMePlz]]></dc:creator><pubDate>Thu, 15 Jun 2006 20:44:46 GMT</pubDate></item><item><title><![CDATA[Reply to Libs für jede C++ Datei linken? on Fri, 16 Jun 2006 05:25:55 GMT]]></title><description><![CDATA[<p>Verstehe Deine Frage nicht...<br />
CPP-Dateien linken nicht gegen irgendwelche LIB-Dateien...</p>
<p>Mit dem #pragma comment(lib, ...) teilst Du nur dem Linker mit, dass er noch diese LIB-Datei dazulinken soll. Diese definition gehört in eine H-Datei und hat mit der CPP-Datei nix zu tun...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078623</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 16 Jun 2006 05:25:55 GMT</pubDate></item><item><title><![CDATA[Reply to Libs für jede C++ Datei linken? on Fri, 16 Jun 2006 07:35:48 GMT]]></title><description><![CDATA[<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>[..] #pragma comment(lib, ...) [..] Diese definition gehört in eine H-Datei und hat mit der CPP-Datei nix zu tun...</p>
</blockquote>
<p>Wieso gehört das in die Headerdatei?</p>
<p>Ich linke Libs, welche nur von einer bestimmten Klasse und nicht projektübergreifend verwendet werden, über #pragma. Damit kann ich Klasse anderen Projekten hinzufügen, ohne die Projekteinstellungen ändern zu müssen. Das #pragma schreibe ich in die CPP-Datei, da erst dort die Lib-Fkt. aufgerufen werden. Was spricht dagegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078663</guid><dc:creator><![CDATA[don_basto]]></dc:creator><pubDate>Fri, 16 Jun 2006 07:35:48 GMT</pubDate></item><item><title><![CDATA[Reply to Libs für jede C++ Datei linken? on Fri, 16 Jun 2006 07:46:48 GMT]]></title><description><![CDATA[<p>I.d.R. verwendest Du ja (min.) eine H-Datei für die LIB, oder?<br />
Somit sollte der LIB-Hersteller in diese von ihm gelieferte H-Datei auch ein #pragma comment(lib, ...) einfügen, da ja eine Verwendung der H-Datei ohne linken der LIB-Datei keinen Sinn macht.</p>
<p>Wenn der Hersteller dies natürlich versäumt hat, kannst Du es in eine cpp-Datei reinmachen... aber das ist IMHO ein Fehler des LIB-Herstellers.</p>
<p>Auch verhindert ein #pragma comment(lib, ...) in der H-Datei des Herstellers ein einbinden einer &quot;falschen&quot; LIB, wenn es z.B. für verschiedene VS-versionen, CRT-Versionen (MT/MT, UNICODE/ANSI, usw.) unterschiedliche LIBs gibt. Dies kann der Hersteller ganz einfach via #if entsprechend in der H-Datei realisieren...</p>
<p>So sieht z.B: bei unserer H-Datei für eine LIB dieser Erintrag in der H-Datei wie folgt aus:</p>
<pre><code class="language-cpp">#ifndef _LIB
  // Prgama für den Linker, damit er die Library einbindet
  #ifdef _UNICODE
    #ifdef _DEBUG
      #ifdef _MANAGED
        #pragma comment (lib, &quot;NameDerLib_umd.lib&quot;)
      #else
        #pragma comment (lib, &quot;NameDerLib_ud.lib&quot;)
      #endif
    #else
      #pragma comment (lib, &quot;NameDerLib_u.lib&quot;)
    #endif
  #else
    // ANSI
    #ifdef _DEBUG
      #pragma comment (lib, &quot;NameDerLib_d.lib&quot;)
    #else
      #pragma comment (lib, &quot;NameDerLib_.lib&quot;)
    #endif
  #endif
#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1078668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078668</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 16 Jun 2006 07:46:48 GMT</pubDate></item><item><title><![CDATA[Reply to Libs für jede C++ Datei linken? on Fri, 16 Jun 2006 08:01:21 GMT]]></title><description><![CDATA[<p>So macht das Sinn, ist aber nicht immer so. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Hatte das Problem von der anderen Perspektive (Sicht des Anwenders) gesehen. Wenn natürlich der Hersteller das pragma ins seine H-Datei schreibt, kann der Anwender es sich dann sparen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1078672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1078672</guid><dc:creator><![CDATA[don_basto]]></dc:creator><pubDate>Fri, 16 Jun 2006 08:01:21 GMT</pubDate></item><item><title><![CDATA[Reply to Libs für jede C++ Datei linken? on Fri, 16 Jun 2006 16:11:25 GMT]]></title><description><![CDATA[<p>Hallo zusammen, erstmal danke für die Antworten, ...</p>
<p>Ich bin mir nicht ganz sicher, ob Jochen mein Problem jetzt genau erfasst hat...vllt. sollte ich noch n bissl Bkgnd-Wissen liefern:</p>
<p>Also ich habe mir eine Klasse CDemo geschrieben, diese habe ich in eine DLL exportiert...in meinem Hauptprogramm exisitieren jetzt einige *.cpp-Dateien, die Gebrauch von der Klasse machen...Deshalb inkludieren alle (diese) cpp-Dateien den Header der DLL. Dieser Header enthält auch ein #pragma comment... und linkt somit die richtige Library (Wenn man so will: Ich bin der Hersteller, der den 'Lib-Lade-Befehl' in die Header gesetzt hat^^). In meinem Projekt existieren nun sehr viele cpp-Dateien, somit, kommt der Compiler mehrmals an den Befehl #pragma comment... ! Ist das schlimm/nachteilhaft/etc. ...? Dann hab ich mal btw. noch eine weitere kleine Frage:<br />
Muss in einer DLL eine DllMain()-Funktion existieren...Bei meiner derzeitigen 'Komposition'^^ habe ich drei Cpp-Dateien, in denen jewals eine Klassen definition enthalten ist und eine Header, die so zusagen die Prototypen der Klassen enthält (+ ne *.rc und ne Resource.h für die Versionsinfos)...ist das so 'ok' bzw. 'gebräuchlich' oder würdest du mir davon abraten?</p>
<p>So, schonmal ein riesen großes Dankeschön sowohl für die (hoffentlich) nächste Antwort, als auch für die letzten! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079054</guid><dc:creator><![CDATA[HelpMePlz]]></dc:creator><pubDate>Fri, 16 Jun 2006 16:11:25 GMT</pubDate></item><item><title><![CDATA[Reply to Libs für jede C++ Datei linken? on Fri, 16 Jun 2006 16:47:38 GMT]]></title><description><![CDATA[<p>HelpMePlz schrieb:</p>
<blockquote>
<p>In meinem Projekt existieren nun sehr viele cpp-Dateien, somit, kommt der Compiler mehrmals an den Befehl #pragma comment... ! Ist das schlimm/nachteilhaft/etc. ...?</p>
</blockquote>
<p>Das stört nicht.</p>
<p>HelpMePlz schrieb:</p>
<blockquote>
<p>Muss in einer DLL eine DllMain()-Funktion existieren...</p>
</blockquote>
<p>Theoretisch nicht. Wenn Du die CRT verwendest, liefert aber zumindest die CRT eine &quot;DllMain&quot; mit. Diese würde dann Deine DllMain aufrufen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079069</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 16 Jun 2006 16:47:38 GMT</pubDate></item></channel></rss>