<?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[Problem mit mehrfach eingebundener Header-Datei -&amp;gt; Linker-Fehler]]></title><description><![CDATA[<p>Hallo.</p>
<p>Habe folgendes Problem:<br />
Habe ne h-Datei, in der der Prototyp einer Funktion definiert wird.<br />
Diese Funktion wird dann in der zugehörigen cpp-Datei implementiert und in einer anderen cpp-Datei verwendet. Also binden beide cpp-Dateien den Header ein, in welchem die Funktion definiert ist.</p>
<p>Header:</p>
<pre><code class="language-cpp">#ifndef GRAPHIC_DIALOG_H
#define GRAPHIC_DIALOG_H

//[...]

BOOL CALLBACK GraphicDialogMsg(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);

//[...]

#endif
</code></pre>
<p>Wie gesagt, der Header wird von zwei verschiedenen cpp-Dateien eingebunden, daraufhin meldet sich der Linker bezüglich eines mehrfach definierten Symbols:</p>
<blockquote>
<p>GraphicDialog.obj : error LNK2005: &quot;int __stdcall GraphicDialogMsg(struct HWND__ *,unsigned int,unsigned int,long)&quot; (?GraphicDialogMsg@@YGHPAUHWND__@@IIJ@Z) ist bereits in Game.obj definiert.<br />
C:\Projekte\2D-Engine\Debug\2D-Engine.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.</p>
</blockquote>
<p>Dachte eigentlich, dass ich das Problem mit #ifndef umgehen kann.. (?)</p>
<p>Wo ist da mein Fehler?<br />
Hoffe, ihr könnt mir helfen.</p>
<p>MfG<br />
Hundefutter</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229505/problem-mit-mehrfach-eingebundener-header-datei-gt-linker-fehler</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Apr 2026 11:35:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229505.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Dec 2008 18:37:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit mehrfach eingebundener Header-Datei -&amp;gt; Linker-Fehler on Fri, 12 Dec 2008 18:37:22 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Habe folgendes Problem:<br />
Habe ne h-Datei, in der der Prototyp einer Funktion definiert wird.<br />
Diese Funktion wird dann in der zugehörigen cpp-Datei implementiert und in einer anderen cpp-Datei verwendet. Also binden beide cpp-Dateien den Header ein, in welchem die Funktion definiert ist.</p>
<p>Header:</p>
<pre><code class="language-cpp">#ifndef GRAPHIC_DIALOG_H
#define GRAPHIC_DIALOG_H

//[...]

BOOL CALLBACK GraphicDialogMsg(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);

//[...]

#endif
</code></pre>
<p>Wie gesagt, der Header wird von zwei verschiedenen cpp-Dateien eingebunden, daraufhin meldet sich der Linker bezüglich eines mehrfach definierten Symbols:</p>
<blockquote>
<p>GraphicDialog.obj : error LNK2005: &quot;int __stdcall GraphicDialogMsg(struct HWND__ *,unsigned int,unsigned int,long)&quot; (?GraphicDialogMsg@@YGHPAUHWND__@@IIJ@Z) ist bereits in Game.obj definiert.<br />
C:\Projekte\2D-Engine\Debug\2D-Engine.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.</p>
</blockquote>
<p>Dachte eigentlich, dass ich das Problem mit #ifndef umgehen kann.. (?)</p>
<p>Wo ist da mein Fehler?<br />
Hoffe, ihr könnt mir helfen.</p>
<p>MfG<br />
Hundefutter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629634</guid><dc:creator><![CDATA[Hundefutter]]></dc:creator><pubDate>Fri, 12 Dec 2008 18:37:22 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit mehrfach eingebundener Header-Datei -&amp;gt; Linker-Fehler on Fri, 12 Dec 2008 18:44:23 GMT]]></title><description><![CDATA[<p>Also du musst offenbar in dem Header eine Funktion _definiert_ haben. Damit landet die Implementierung dem Modul (.obj oder wie das bei deinem Compiler ist) einer jeden .cpp-Datei, die den Header einbindet. Wenn der Linker dann die .obj-Dateien zusammenführen möchte, findet er auf einmal für ein und die selbe Funktion X Implementierungen (X-mal Code). Das führt dann zu dieser Fehlermeldung.</p>
<p>Viele Grüße,<br />
Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629638</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 12 Dec 2008 18:44:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit mehrfach eingebundener Header-Datei -&amp;gt; Linker-Fehler on Fri, 12 Dec 2008 18:43:25 GMT]]></title><description><![CDATA[<p>Die Deklaration darf, soweit ich weiß, so oft in einer Cpp-Datei drin stehen, wie sie will. Bist du dir sicher, dass die Implementation nicht aus Versehen auch noch in einer anderen Cpp-Datei drin steht? Und ansonsten sind vielleicht die Objekt-Dateien durcheinander geraten, also einfach mal das Projekt bereinigen und neu erstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629639</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Fri, 12 Dec 2008 18:43:25 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit mehrfach eingebundener Header-Datei -&amp;gt; Linker-Fehler on Fri, 12 Dec 2008 18:48:08 GMT]]></title><description><![CDATA[<p>Oh, ich hab eigentlich nur auf die Fehlermeldung geschaut und nicht darauf, dass der TE audrücklich sagt, dass der Header nur deklariert <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="🙂"
    /> Problem ist natürlich dasselbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629644</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 12 Dec 2008 18:48:08 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit mehrfach eingebundener Header-Datei -&amp;gt; Linker-Fehler on Fri, 12 Dec 2008 18:59:38 GMT]]></title><description><![CDATA[<p>Hui, das ging ja schnell... <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="🙂"
    /><br />
War mir eigentlich recht sicher, dass die Funktion nur ein mal im Header definiert war und dann auch nur ein mal in einer der beiden cpp-Dateien implementiert wurde.<br />
Habe daraufhin den Hinweis mit dem Bereinigen des Projektes versucht und nun funktioniert es... Naja, versteht das mal wer will..</p>
<p>Danke für die schnelle Hilfe!</p>
<p>MfG<br />
Hundefutter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629652</guid><dc:creator><![CDATA[Hundefutter]]></dc:creator><pubDate>Fri, 12 Dec 2008 18:59:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit mehrfach eingebundener Header-Datei -&amp;gt; Linker-Fehler on Fri, 12 Dec 2008 23:07:27 GMT]]></title><description><![CDATA[<p>Hundefutter schrieb:</p>
<blockquote>
<p>dass die Funktion nur ein mal im Header definiert war und dann auch nur ein mal in einer der beiden cpp-Dateien implementiert wurde.</p>
</blockquote>
<p>Nur der Vollständigkeit halber und um späteren Missverständnissen vorzubeugen:<br />
Die Definition einer Funktion IST ihre Implementation. Der Funktionskopf alleine ohne den Rumpf, also das was normalerweise im Header steht, nennt man Deklaration.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629767</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 12 Dec 2008 23:07:27 GMT</pubDate></item></channel></rss>