<?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 includeieren und linker]]></title><description><![CDATA[<p>hi leute,</p>
<p>in meinem orjekt gibt es eine main.cpp, eine namespace.h und eine gamestate.h/cpp.<br />
erst habe ich die main die namespace includieren lassen</p>
<p>main.cpp</p>
<pre><code>//...
#include &quot;namespace.h&quot;
//...
</code></pre>
<p>dann habe ich die gamesate.h dazu geschrieben, die die daten aus der namespace.h braucht und auch in die main includiert werden muss.<br />
also</p>
<p>gamestate.h</p>
<pre><code>//...
#include &quot;namespace.h&quot;
//...
</code></pre>
<p>main.cpp</p>
<pre><code>//...
#include &quot;gamestate.h&quot;
//...
</code></pre>
<p>da gibt es aber 15 linker fehler, da er meint dass daten aus der namespace.h schon in main.obj definiert seien.</p>
<p>hier mal ein auszug:</p>
<pre><code>Kompilieren...
main.cpp
Verknüpfen...
main.obj : error LNK2005: &quot;public: __thiscall window::window(void)&quot; (??0window@@QAE@XZ) ist bereits in gamestate.obj definiert.
main.obj : error LNK2005: &quot;public: __thiscall window::window(enum irr::video::E_DRIVER_TYPE,class irr::core::dimension2d&lt;int&gt;)&quot; (??0window@@QAE@W4E_DRIVER_TYPE@video@irr@@V?$dimension2d@H@core@3@@Z) ist bereits in gamestate.obj definiert.
main.obj : error LNK2005: &quot;public: __thiscall window::window(enum irr::video::E_DRIVER_TYPE,class irr::core::dimension2d&lt;int&gt;,class irr::core::string&lt;wchar_t,class irr::core::irrAllocator&lt;wchar_t&gt; &gt;)&quot; (??0window@@QAE@W4E_DRIVER_TYPE@video@irr@@V?$dimension2d@H@core@3@V?$string@_WV?$irrAllocator@_W@core@irr@@@53@@Z) ist bereits in gamestate.obj definiert.
</code></pre>
<p>danke für jede hilfe</p>
<p>mfg freaker</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179887/problem-mit-includeieren-und-linker</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 11:08:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179887.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Apr 2007 10:13:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to problem mit includeieren und linker on Thu, 26 Apr 2007 10:13:13 GMT]]></title><description><![CDATA[<p>hi leute,</p>
<p>in meinem orjekt gibt es eine main.cpp, eine namespace.h und eine gamestate.h/cpp.<br />
erst habe ich die main die namespace includieren lassen</p>
<p>main.cpp</p>
<pre><code>//...
#include &quot;namespace.h&quot;
//...
</code></pre>
<p>dann habe ich die gamesate.h dazu geschrieben, die die daten aus der namespace.h braucht und auch in die main includiert werden muss.<br />
also</p>
<p>gamestate.h</p>
<pre><code>//...
#include &quot;namespace.h&quot;
//...
</code></pre>
<p>main.cpp</p>
<pre><code>//...
#include &quot;gamestate.h&quot;
//...
</code></pre>
<p>da gibt es aber 15 linker fehler, da er meint dass daten aus der namespace.h schon in main.obj definiert seien.</p>
<p>hier mal ein auszug:</p>
<pre><code>Kompilieren...
main.cpp
Verknüpfen...
main.obj : error LNK2005: &quot;public: __thiscall window::window(void)&quot; (??0window@@QAE@XZ) ist bereits in gamestate.obj definiert.
main.obj : error LNK2005: &quot;public: __thiscall window::window(enum irr::video::E_DRIVER_TYPE,class irr::core::dimension2d&lt;int&gt;)&quot; (??0window@@QAE@W4E_DRIVER_TYPE@video@irr@@V?$dimension2d@H@core@3@@Z) ist bereits in gamestate.obj definiert.
main.obj : error LNK2005: &quot;public: __thiscall window::window(enum irr::video::E_DRIVER_TYPE,class irr::core::dimension2d&lt;int&gt;,class irr::core::string&lt;wchar_t,class irr::core::irrAllocator&lt;wchar_t&gt; &gt;)&quot; (??0window@@QAE@W4E_DRIVER_TYPE@video@irr@@V?$dimension2d@H@core@3@V?$string@_WV?$irrAllocator@_W@core@irr@@@53@@Z) ist bereits in gamestate.obj definiert.
</code></pre>
<p>danke für jede hilfe</p>
<p>mfg freaker</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273813</guid><dc:creator><![CDATA[freaker]]></dc:creator><pubDate>Thu, 26 Apr 2007 10:13:13 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit includeieren und linker on Thu, 26 Apr 2007 10:16:31 GMT]]></title><description><![CDATA[<p>schreib einfach als ersten befehl in die beiden header-dateien<br />
#pragma once</p>
<p>und die fehler sollten verschwunden sein..<br />
hoffe ich konnte dir helfen</p>
<p>mfg manixx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273814</guid><dc:creator><![CDATA[manixx]]></dc:creator><pubDate>Thu, 26 Apr 2007 10:16:31 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit includeieren und linker on Thu, 26 Apr 2007 10:19:55 GMT]]></title><description><![CDATA[<p>Da sagt dir die Meldung doch ganz klar, was der Fehler ist - die betroffenen Funktionen wurden sowohl beim Compilieren der main.cpp als auch bei der gamestate.cpp compiliert und jetzt liegen sie doppelt da und der Linker kann sich jetzt nicht entscheiden, welche Version die richtige ist.</p>
<p>Die Lösung ist ganz einfach: In den Header &quot;namespace.h&quot; gehören nur die Deklarationen der Funktionen (Ausnahmen: du hast die Funktionen inline angelegt oder du verwendest Templates). Die zugehörigen Definitionen kommen in ein eigenes .CPP-File.</p>
<p>Edit <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15823">@manixx</a>: Include-Guards helfen gegen Compiler-Fehler, aber nicht gegen Linker-Fehler <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/1273817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273817</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 26 Apr 2007 10:19:55 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit includeieren und linker on Thu, 26 Apr 2007 10:23:14 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15823">@manixx</a>: das mit der #pragma anweißung klappt leider nicht<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>: in der namespace.h ist nichts definiert sondern nur deklariert. so eine art zusammenfassung aller globelen variablen:</p>
<pre><code>//***********************************************************************************//
#if !defined(__npc__h__)
#define __npc_h__

//***********************************************************************************//
#include &quot;window.h&quot;
#include &quot;player.h&quot;
#include &quot;trigger.h&quot;
#include &quot;gui.h&quot;

//***********************************************************************************//
namespace api
{
	trigger	trg;

	// the main window for the application
	window	wnd(video::EDT_OPENGL, core::dimension2d&lt;s32&gt;(1280, 1024), 32, true, false, false, trg, L&quot;Bomberman v0.0&quot;);

	player	pla(L&quot;stefan&quot;, BLUE);

	// the scenemanegr
	manager		mng(wnd);
	//the videodriver
	driver		drv(wnd);
	//the guienvironment
	interface	inf(wnd);

	gui_dev		dev(inf.acces());
}

//***********************************************************************************//
#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1273821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273821</guid><dc:creator><![CDATA[freaker]]></dc:creator><pubDate>Thu, 26 Apr 2007 10:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit includeieren und linker on Thu, 26 Apr 2007 11:02:19 GMT]]></title><description><![CDATA[<p>Zeig lieber mal gamestat.h.</p>
<p>greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273839</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 26 Apr 2007 11:02:19 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit includeieren und linker on Thu, 26 Apr 2007 11:10:26 GMT]]></title><description><![CDATA[<p>freaker schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>: in der namespace.h ist nichts definiert sondern nur deklariert. so eine art zusammenfassung aller globelen variablen:</p>
</blockquote>
<p>Schau dir doch mal den Unterschied zwischen &quot;Deklaration&quot; und &quot;Definition&quot; an und überdenk nochmal deine Aussage <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="😉"
    /> Das da drin sind Variablen<strong>definitionen</strong> - und die sind an der Stelle falsch (Deklarationen wären &quot;extern trigger trg;&quot; etc).</p>
<p>PS: Und außerdem betrifft das Problem nicht nur diesen einen Header, sondern auch alles, was er eingebunden hat (die drei angegebenen Fehlermeldungen beziehen sich auf die Ctoren der window-Klasse).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273845</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 26 Apr 2007 11:10:26 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit includeieren und linker on Thu, 26 Apr 2007 12:04:41 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>: Falls sich dein PS auf mich bezieht, so habe ich gehofft, dass sein Fehlermuster in gamestat.h offensichtlich werden würde. Sein Fehler durch mehrfachdefinition war mir schon klar <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>greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273892</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 26 Apr 2007 12:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit includeieren und linker on Thu, 26 Apr 2007 12:11:22 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>: Falls sich dein PS auf mich bezieht, so habe ich gehofft, dass sein Fehlermuster in gamestat.h offensichtlich werden würde. Sein Fehler durch mehrfachdefinition war mir schon klar <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>Nein, das bezog sich auch auf freaker.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1273899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1273899</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 26 Apr 2007 12:11:22 GMT</pubDate></item></channel></rss>