<?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[Probleme mit Mehrfachdeklaration beim Linken]]></title><description><![CDATA[<p>Morgen,</p>
<p>ich hab ein kleines Problem, vielleicht habt ihr ja ein paar Vorschläge die mich näher an die Lösung bringen <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>
<p>Meine c++ Dateien werden seperat kompiliert und danach vom Linker zusammengefügt.</p>
<p>Das Problem daran ist, das ich in einigen Dateien die gleichen Header benutzen muss. Dadurch erhalte ich vom Linker den Hinweis der Mehrfachdeklaration.</p>
<p>Ich kann die Header aber auch nicht aus den Dateien nehmen, da diese sonst nicht über den Compiler hinaus kommen.</p>
<p>Das einzige was mir jetzt eingefallen ist, ist alle Dateien über den Mainheader einzubinden und nur meine main.cpp zu kompilieren. Dadürch hatte ich nur noch ein object file und der Linker sollte nicht mehr meckern.</p>
<p>Allerdings kann ich mir nich vorstellen das es dafür nicht eine elegantere lösung gibt...</p>
<p>P.S alle header sind nach folgendem Schema aufgebaut</p>
<pre><code>[cpp]#ifndef [i]headerfilename[/i]
#define [i]headerfilename[/i]
 //code
#endif[/cpp]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/155844/probleme-mit-mehrfachdeklaration-beim-linken</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 18:10:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155844.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Aug 2006 10:30:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit Mehrfachdeklaration beim Linken on Thu, 10 Aug 2006 10:30:50 GMT]]></title><description><![CDATA[<p>Morgen,</p>
<p>ich hab ein kleines Problem, vielleicht habt ihr ja ein paar Vorschläge die mich näher an die Lösung bringen <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>
<p>Meine c++ Dateien werden seperat kompiliert und danach vom Linker zusammengefügt.</p>
<p>Das Problem daran ist, das ich in einigen Dateien die gleichen Header benutzen muss. Dadurch erhalte ich vom Linker den Hinweis der Mehrfachdeklaration.</p>
<p>Ich kann die Header aber auch nicht aus den Dateien nehmen, da diese sonst nicht über den Compiler hinaus kommen.</p>
<p>Das einzige was mir jetzt eingefallen ist, ist alle Dateien über den Mainheader einzubinden und nur meine main.cpp zu kompilieren. Dadürch hatte ich nur noch ein object file und der Linker sollte nicht mehr meckern.</p>
<p>Allerdings kann ich mir nich vorstellen das es dafür nicht eine elegantere lösung gibt...</p>
<p>P.S alle header sind nach folgendem Schema aufgebaut</p>
<pre><code>[cpp]#ifndef [i]headerfilename[/i]
#define [i]headerfilename[/i]
 //code
#endif[/cpp]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1114425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114425</guid><dc:creator><![CDATA[kuerbis]]></dc:creator><pubDate>Thu, 10 Aug 2006 10:30:50 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachdeklaration beim Linken on Thu, 10 Aug 2006 11:21:06 GMT]]></title><description><![CDATA[<p>Wenn, dann erhälst Du Fehler zu Mehrfach<strong>definitionen</strong> <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>
<p>Lösung:<br />
Definitionen inline machen (je nach Funktion weniger gut) oder sauber in ein eigenes cpp File packen und aus dem Header entfernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1114469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114469</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 10 Aug 2006 11:21:06 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachdeklaration beim Linken on Thu, 10 Aug 2006 12:01:01 GMT]]></title><description><![CDATA[<p>Oh ja sorry - natürlich Definitionen <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>
<p>Aber bei inline Definitionen würde ich doch ebenfalls auf das gleiche Problem stoßen.</p>
<p>Das Problem ist ja nicht das Kompilieren, sondern das nachher zusammenfügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1114496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114496</guid><dc:creator><![CDATA[kuerbis]]></dc:creator><pubDate>Thu, 10 Aug 2006 12:01:01 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachdeklaration beim Linken on Thu, 10 Aug 2006 13:02:19 GMT]]></title><description><![CDATA[<p>So nach einigen Studien bin ich zu folgendem Schluss gelangt:</p>
<p>Der Kompiler läuft einwandfrei durch und erzeugt die entsprechenden object Dateien.</p>
<p>In den Objectdateien gibt es jeweils diese Definition, was zu Problemen beim linken führt.</p>
<p>Die Möglichkeit per c&amp;p die betroffenen Datein zusammenzufassen funktioniert zwar, ist für mich aber keine wirkliche Alternative.</p>
<p>Daher frage ich mich ob es nicht eine Möglichkeit gibt, dem Kompiler zu sagen das er mehrere Dateien zusammen kompilieren soll, so dass dieser nur ein object Datei erzeugt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1114583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114583</guid><dc:creator><![CDATA[kuerbis]]></dc:creator><pubDate>Thu, 10 Aug 2006 13:02:19 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachdeklaration beim Linken on Thu, 10 Aug 2006 13:05:08 GMT]]></title><description><![CDATA[<p>Die (einzigen) Lösungen wurden Dir schon genannt:</p>
<p>Inlining oder Auslagern der Definitionen in jeweils <strong>eine</strong> CPP-Datei.</p>
<p>Warum sträubst Du Dich dagegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1114587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1114587</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 10 Aug 2006 13:05:08 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachdeklaration beim Linken on Fri, 11 Aug 2006 10:12:04 GMT]]></title><description><![CDATA[<p>Usual solution:</p>
<pre><code>//var.h (header)
extern int var; // declaration

// var.cpp (special .cpp file where you define variable)
int var; // definition

// main.cpp
int x = var; // you can use var

// other_module.cpp
int y = var;
var = 10; // you can use var, it's the same variable
</code></pre>
<p>Note that it's more C solution. You can also create singleton.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1115148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1115148</guid><dc:creator><![CDATA[RoboTact]]></dc:creator><pubDate>Fri, 11 Aug 2006 10:12:04 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachdeklaration beim Linken on Mon, 14 Aug 2006 15:21:30 GMT]]></title><description><![CDATA[<p>Vielen dank,</p>
<p>es funktioniert jetzt. Ich musste dann doch die Headerdatei vom Hersteller anpacken, naja was solls <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>
<p>Ich hab jetzt aber noch ein anderes Problem mit COM.</p>
<p>Ich will mit CoCreateInstance eine Instanz erzeugen, doch leider weiss ich nicht wie ich die CLSID übergeben soll bzw. wie ich die CLSID definieren soll.</p>
<p>P.S bin totaler neuling mit dem COM.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117065</guid><dc:creator><![CDATA[kuerbis]]></dc:creator><pubDate>Mon, 14 Aug 2006 15:21:30 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachdeklaration beim Linken on Mon, 14 Aug 2006 15:47:12 GMT]]></title><description><![CDATA[<p>kuerbis schrieb:</p>
<blockquote>
<p>Vielen dank,</p>
<p>es funktioniert jetzt. Ich musste dann doch die Headerdatei vom Hersteller anpacken, naja was solls <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>
</blockquote>
<p>also in dem fall wuerde ich die headerdateien vom hersteller nicht anruehren.<br />
schreib lieber eine wrapper-klasse, die im implementationsfile die betroffene headerdatei inkludiert.<br />
somit wird das header file nur mehr einmal inkludiert und du bekommst keine linker-error mehr.<br />
das waere meiner meinung nach eine wesentlich elegantere loesung.</p>
<p>- georg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117086</guid><dc:creator><![CDATA[GeorgV]]></dc:creator><pubDate>Mon, 14 Aug 2006 15:47:12 GMT</pubDate></item></channel></rss>