<?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[DLL die von DLL abhängen :-)]]></title><description><![CDATA[<p>Hallo.<br />
Mein Projekt entwickele ich vor allem für Linux. Dazu habe ich eine Hierachie von shared libraries. &quot;core&quot; und einige darauf aufbauende. Kompiliert wird das dort ungefähr so:</p>
<pre><code class="language-cpp">g++ -shared -fPIC core.cpp -o libcore.so
</code></pre>
<p>Das funktioniert auch wunderbar mit den Erweiterungen, welche zumeist aus abgeleiteten Klassen des &quot;core&quot; Teils sind.</p>
<p>In Windows kann ich (sofern ich fPIC weglasse - warum eigendlich?) &quot;core&quot; auch ohne weiteres bauen. Jedoch streikt gcc bei den aufbauenden libs a la:</p>
<blockquote>
<p>extension.cpp:554: undefined reference to `coreTag_t::~coreTag_t()'</p>
</blockquote>
<p>Bin ich gezwungen in Windows alles in eine große DLL zu packen oder wie soll ich das verstehen?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Danke euch ...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/225427/dll-die-von-dll-abhängen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 09:29:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/225427.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Oct 2008 10:37:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 10:37:27 GMT]]></title><description><![CDATA[<p>Hallo.<br />
Mein Projekt entwickele ich vor allem für Linux. Dazu habe ich eine Hierachie von shared libraries. &quot;core&quot; und einige darauf aufbauende. Kompiliert wird das dort ungefähr so:</p>
<pre><code class="language-cpp">g++ -shared -fPIC core.cpp -o libcore.so
</code></pre>
<p>Das funktioniert auch wunderbar mit den Erweiterungen, welche zumeist aus abgeleiteten Klassen des &quot;core&quot; Teils sind.</p>
<p>In Windows kann ich (sofern ich fPIC weglasse - warum eigendlich?) &quot;core&quot; auch ohne weiteres bauen. Jedoch streikt gcc bei den aufbauenden libs a la:</p>
<blockquote>
<p>extension.cpp:554: undefined reference to `coreTag_t::~coreTag_t()'</p>
</blockquote>
<p>Bin ich gezwungen in Windows alles in eine große DLL zu packen oder wie soll ich das verstehen?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Danke euch ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603300</guid><dc:creator><![CDATA[Bombastus]]></dc:creator><pubDate>Thu, 23 Oct 2008 10:37:27 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 11:07:01 GMT]]></title><description><![CDATA[<p>Troll wo anders!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603317</guid><dc:creator><![CDATA[na und]]></dc:creator><pubDate>Thu, 23 Oct 2008 11:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 11:08:20 GMT]]></title><description><![CDATA[<p>na und schrieb:</p>
<blockquote>
<p>Troll wo anders!</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603321</guid><dc:creator><![CDATA[Bombastus]]></dc:creator><pubDate>Thu, 23 Oct 2008 11:08:20 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 11:51:58 GMT]]></title><description><![CDATA[<p>Gibts vielleicht irgendwas verachtenswertes an der Frage von dem ich nichts weiss??!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603359</guid><dc:creator><![CDATA[Bombastus]]></dc:creator><pubDate>Thu, 23 Oct 2008 11:51:58 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 12:04:51 GMT]]></title><description><![CDATA[<p>nö. einfach ignorieren und abwarten, es kommt bestimmt noch einer vorbei der bescheid weiß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603372</guid><dc:creator><![CDATA[geduld, junger padawan]]></dc:creator><pubDate>Thu, 23 Oct 2008 12:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 12:15:21 GMT]]></title><description><![CDATA[<p>geduld, junger padawan schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Was habt ihr alle in letzter Zeit so von Starwars?! - Macht Pro7 etwa wiedermal extrem nervige Werbung für die Filme?!</p>
<p>@Problem:<br />
Der Fehler sagt nur, dass er eine Definition nicht finden kann. Du hast auch sicher nichts verändert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603379</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 23 Oct 2008 12:15:21 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 12:23:04 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>@Problem:<br />
Der Fehler sagt nur, dass er eine Definition nicht finden kann. Du hast auch sicher nichts verändert?</p>
</blockquote>
<p>Naja er kann es nicht finden weil es sich in einer anderen library befindet! Aber in Linux ist das <strong>kein</strong> Problem. Da braucht nur das Hauptprogramm alle Abhängigkeiten der jeweiligen lib.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603388</guid><dc:creator><![CDATA[Bombastus]]></dc:creator><pubDate>Thu, 23 Oct 2008 12:23:04 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 12:29:52 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Was habt ihr alle in letzter Zeit so von Starwars?!</p>
</blockquote>
<p>entweder ist es zufall, oder die dunkle seite der macht zwingt uns dazu.</p>
<blockquote>
<p>Macht Pro7 etwa wiedermal extrem nervige Werbung für die Filme?!</p>
</blockquote>
<p>welcher vernunftbegabte mensch schaut sich denn bitte pro7 an? oder werbung??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603391</guid><dc:creator><![CDATA[praktiker-wan kenobi]]></dc:creator><pubDate>Thu, 23 Oct 2008 12:29:52 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 13:53:17 GMT]]></title><description><![CDATA[<p>Mal sehen... Force Unleashed, Pro7, neues Star Wars MMO... Clone Wars... Gibt schon genug Nerd-Futter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603439</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 23 Oct 2008 13:53:17 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 16:55:32 GMT]]></title><description><![CDATA[<p>Ungeachtet dieser Star Wars Weisheiten wird doch auch jemand was zum Topic zum dazusenfen haben oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603541</guid><dc:creator><![CDATA[Bombastus]]></dc:creator><pubDate>Thu, 23 Oct 2008 16:55:32 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 17:12:18 GMT]]></title><description><![CDATA[<p>Sind deinen Klassen auch richtig exportiert ?<br />
Stichwort: __declspec(dllexport) beim export und __declspec(dllimport) beim import</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1603558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603558</guid><dc:creator><![CDATA[case]]></dc:creator><pubDate>Thu, 23 Oct 2008 17:12:18 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Thu, 23 Oct 2008 17:22:24 GMT]]></title><description><![CDATA[<p>case schrieb:</p>
<blockquote>
<p>Sind deinen Klassen auch richtig exportiert ?<br />
Stichwort: __declspec(dllexport) beim export und __declspec(dllimport) beim import</p>
</blockquote>
<p>Nein ... das ist was Windows spezifisches?!<br />
Ich mach mal ein konkretes Beispiel:</p>
<pre><code class="language-cpp">#ifndef CORE_H
#define CORE_H

class core
{
   virtual void member();
};

#endif
</code></pre>
<pre><code class="language-cpp">//core.cpp
#include &quot;core.h&quot;
/*ganz toller code*/
</code></pre>
<pre><code class="language-cpp">#ifndef EXT_H
#define EXT_H

#include &quot;core.h&quot;

class ext : public core
{
};

#endif
</code></pre>
<pre><code class="language-cpp">#include &quot;ext.h&quot;
/*weitere genialitäten*/
</code></pre>
<p>So ... core.cpp ist meine shared library. ext.cpp nutzt die auf die ein oder andere weise ( hier halt abgeleitet ). ext soll <strong>auch</strong> eine eigenständige library sein.</p>
<p>Mit Linux und gcc compiliere ich das einfach so:</p>
<blockquote>
<p>g++ core.cpp -shared -fPIC -o <a href="http://libcore.so" rel="nofollow">libcore.so</a><br />
g++ ext.cpp -shared -fPIC -o <a href="http://libext.so" rel="nofollow">libext.so</a> //HIER DER FEHLER &quot;undefined reference&quot; in windows!!</p>
</blockquote>
<p>Beim bauen von ext sind die definitionen ja auch ned bakannt!!!! Unter windows funktioniert das so nicht. Zum reinen compilieren von <a href="http://libext.so" rel="nofollow">libext.so</a> brauche ich ja <a href="http://libcore.so" rel="nofollow">libcore.so</a> nicht mal!!!</p>
<p>Mein Hauptprogramm wird dann eben so gebaut:</p>
<blockquote>
<p>g++ programm.cpp -o prog -lcore -lext</p>
</blockquote>
<p>Eigendlich ganz simpel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      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/1603563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1603563</guid><dc:creator><![CDATA[Bombastus]]></dc:creator><pubDate>Thu, 23 Oct 2008 17:22:24 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Fri, 24 Oct 2008 12:23:44 GMT]]></title><description><![CDATA[<p>schieb <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1604156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1604156</guid><dc:creator><![CDATA[Bombastus]]></dc:creator><pubDate>Fri, 24 Oct 2008 12:23:44 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Fri, 24 Oct 2008 12:32:58 GMT]]></title><description><![CDATA[<p>case schrieb:</p>
<blockquote>
<p>Sind deinen Klassen auch richtig exportiert ?<br />
Stichwort: __declspec(dllexport) beim export und __declspec(dllimport) beim import</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1604161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1604161</guid><dc:creator><![CDATA[sothis_]]></dc:creator><pubDate>Fri, 24 Oct 2008 12:32:58 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Fri, 24 Oct 2008 12:59:26 GMT]]></title><description><![CDATA[<p>sothis_ schrieb:</p>
<blockquote>
<p>case schrieb:</p>
<blockquote>
<p>Sind deinen Klassen auch richtig exportiert ?<br />
Stichwort: __declspec(dllexport) beim export und __declspec(dllimport) beim import</p>
</blockquote>
</blockquote>
<p>Okay, 2x für Dummies <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Aaalso: So sieht nun mein classA.h aus:</p>
<pre><code class="language-cpp">#ifndef CLASSA_H
#define CLASSA_H

#ifdef WIN32
#ifdef EXPORT
    #define CLASS_DLSPEC __declspec(dllexport)
#else
    #define CLASS_DLSPEC __declspec(dllimport)
#endif
#else
    #define CLASS_DLSPEC
#endif

class CLASS_DLSPEC classA
{
public:
    classA();

    void printMe();
};

#endif
</code></pre>
<p>&quot;core&quot; wird nun mit dem Makro EXPORT gebaut. Erweiterungen nicht, ABER (<strong>!!!</strong>) jetzt compiliert classB, also die &quot;erweiterung&quot; nur, wenn ich -lclassa angebe!!! Muss das sein? Schließlich sorgt das MAKRO für ein dllimport... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Tyvm <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/1604184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1604184</guid><dc:creator><![CDATA[Bombastus]]></dc:creator><pubDate>Fri, 24 Oct 2008 12:59:26 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Fri, 24 Oct 2008 13:08:19 GMT]]></title><description><![CDATA[<p>Bombastus schrieb:</p>
<blockquote>
<p>&quot;core&quot; wird nun mit dem Makro EXPORT gebaut. Erweiterungen nicht, ABER (<strong>!!!</strong>) jetzt compiliert classB, also die &quot;erweiterung&quot; nur, wenn ich -lclassa angebe!!! Muss das sein? Schließlich sorgt das MAKRO für ein dllimport... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>yup, dass muss unter windows so sein, da müssen alle symbole zur linkzeit (mindestens über eine importbibliothek) vorhanden sein, auch wenn sie erst zur laufzeit dynamisch aufgelöst werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1604187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1604187</guid><dc:creator><![CDATA[sothis_]]></dc:creator><pubDate>Fri, 24 Oct 2008 13:08:19 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Fri, 24 Oct 2008 13:12:12 GMT]]></title><description><![CDATA[<p>sothis_ schrieb:</p>
<blockquote>
<p>Bombastus schrieb:</p>
<blockquote>
<p>&quot;core&quot; wird nun mit dem Makro EXPORT gebaut. Erweiterungen nicht, ABER (<strong>!!!</strong>) jetzt compiliert classB, also die &quot;erweiterung&quot; nur, wenn ich -lclassa angebe!!! Muss das sein? Schließlich sorgt das MAKRO für ein dllimport... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>yup, dass muss unter windows so sein, da müssen alle symbole zur linkzeit (mindestens über eine importbibliothek) vorhanden sein, auch wenn sie erst zur laufzeit dynamisch aufgelöst werden.</p>
</blockquote>
<p>Ich danke herzlichst! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1604191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1604191</guid><dc:creator><![CDATA[Bombastus]]></dc:creator><pubDate>Fri, 24 Oct 2008 13:12:12 GMT</pubDate></item><item><title><![CDATA[Reply to DLL die von DLL abhängen :-) on Fri, 24 Oct 2008 13:20:07 GMT]]></title><description><![CDATA[<p>ohne genau zu wissen was du vorhast, würde dich, denke ich, LoadLibrary() und GetProcAddress() interessieren. damit kannst du funktionszeigern zur laufzeit adressen von externen symbolen in dll's zuweisen. das macht in einem 'plugin' oder erweiterungsrahmen sinn, wenn eben zur linkzeit noch nicht alle symbole zur verfügung stehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1604197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1604197</guid><dc:creator><![CDATA[sothis_]]></dc:creator><pubDate>Fri, 24 Oct 2008 13:20:07 GMT</pubDate></item></channel></rss>