<?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[namspace includen]]></title><description><![CDATA[<p>Hey,</p>
<p>ich habe einen namespace, dieser enthält (zur zeit) eine Variable ( nen mutex). Diese soll nun global im Programm sein.<br />
Nun kommt bei mir aber der Fehler:</p>
<pre><code>Connection_Handler.obj : error LNK2005: &quot;class boost::mutex mutex::io&quot; (?io@mutex@@3V1boost@@A) ist bereits in Connection.obj definiert.
main.obj : error LNK2005: &quot;class boost::mutex mutex::io&quot; (?io@mutex@@3V1boost@@A) ist bereits in Connection.obj definiert.
E:\Programmieren\Chat_Project\Debug\Chat_Project.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
</code></pre>
<p>Also der Compiler denkt das das objekt/die Variable mehrfachdeklariert wird.<br />
Nur kapier ich nicht wieso. Ist das includen von einer .h nicht genauso also würde man die QC in die darauffolgende .h includen und dann immer so weiter bist zur main.cpp? Dann dürfte es doch eigtl rein logisch keine Probleme geben, oder sitze ich da einem fatalen Fehler auf?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/271333/namspace-includen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 12:58:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/271333.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Jul 2010 17:27:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to namspace includen on Mon, 26 Jul 2010 17:27:31 GMT]]></title><description><![CDATA[<p>Hey,</p>
<p>ich habe einen namespace, dieser enthält (zur zeit) eine Variable ( nen mutex). Diese soll nun global im Programm sein.<br />
Nun kommt bei mir aber der Fehler:</p>
<pre><code>Connection_Handler.obj : error LNK2005: &quot;class boost::mutex mutex::io&quot; (?io@mutex@@3V1boost@@A) ist bereits in Connection.obj definiert.
main.obj : error LNK2005: &quot;class boost::mutex mutex::io&quot; (?io@mutex@@3V1boost@@A) ist bereits in Connection.obj definiert.
E:\Programmieren\Chat_Project\Debug\Chat_Project.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
</code></pre>
<p>Also der Compiler denkt das das objekt/die Variable mehrfachdeklariert wird.<br />
Nur kapier ich nicht wieso. Ist das includen von einer .h nicht genauso also würde man die QC in die darauffolgende .h includen und dann immer so weiter bist zur main.cpp? Dann dürfte es doch eigtl rein logisch keine Probleme geben, oder sitze ich da einem fatalen Fehler auf?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932177</guid><dc:creator><![CDATA[Jud4s]]></dc:creator><pubDate>Mon, 26 Jul 2010 17:27:31 GMT</pubDate></item><item><title><![CDATA[Reply to namspace includen on Mon, 26 Jul 2010 17:40:50 GMT]]></title><description><![CDATA[<p>Du inkludierst wahrscheinlich den Header mehrmals. Der Compiler bastelt aus jeder cpp-Datei eine Objektdatei. In dieser ist dann alles drin, was entsprechend in der cpp-Datei enthalten ist, auch der Header. Nun gibt es deine Variable in mehreren compilierten Einheiten. Der Linker meldet einen Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932186</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 26 Jul 2010 17:40:50 GMT</pubDate></item><item><title><![CDATA[Reply to namspace includen on Mon, 26 Jul 2010 17:50:43 GMT]]></title><description><![CDATA[<p>Also der Compiler bzw Linker meckert sicherlich nicht wegen einer Mehrfachdeklaration, wenn dann wegen einer Mehrfachdefinition( was bei dir auch der Fall ist ), denn Deklaration und Definition ist ein großer Unterschied.<br />
Deklarieren darfste eigentlich so oft du willst( Stichwort extern ), blos definieren nicht.</p>
<p>Also setz mal ein extern davor, dann müsst es funktionieren.</p>
<p>Hoffe ich konnte helfen.</p>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932191</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Mon, 26 Jul 2010 17:50:43 GMT</pubDate></item><item><title><![CDATA[Reply to namspace includen on Tue, 27 Jul 2010 16:04:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">namespace mutex    //globaler mutex für den IO bereich!
{ 
	extern boost::mutex io;
}
</code></pre>
<p>jetzt sagt er mir das wär ein nicht aufgelöstes externes symbol -.-, was soll ich da auflösen?<br />
Ich habe ausserdem immernoch noch nicht ganz verstanden was der Compiler dagegen hat?</p>
<blockquote>
<p>Du inkludierst wahrscheinlich den Header mehrmals.</p>
</blockquote>
<p>Ja in die nächste, in der hirachie drunter liegende .h. Aber nur ein mal, deswegen verwirrt mich der Fehler ja uach so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932657</guid><dc:creator><![CDATA[Judas]]></dc:creator><pubDate>Tue, 27 Jul 2010 16:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to namspace includen on Tue, 27 Jul 2010 16:34:55 GMT]]></title><description><![CDATA[<p>Das ist lediglich eine Deklaration. Du musst io noch definieren. Also in eine .cpp das hier packen:</p>
<pre><code class="language-cpp">namespace mutex    //globaler mutex für den IO bereich!
{ 
    boost::mutex io;
}
</code></pre>
<p>Das extern sagt nichts anderes, dass du die Definition irgendwo genau 1 mal machst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932674</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 27 Jul 2010 16:34:55 GMT</pubDate></item><item><title><![CDATA[Reply to namspace includen on Tue, 27 Jul 2010 17:49:51 GMT]]></title><description><![CDATA[<p>so es klappt</p>
<p>in der .h</p>
<pre><code class="language-cpp">namespace mutex    //globaler mutex für den IO bereich!
{ 
	extern boost::mutex io;
}
</code></pre>
<p>in der .cpp</p>
<pre><code class="language-cpp">namespace mutex    //globaler mutex für den IO bereich!
{ 
	boost::mutex io;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1932709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932709</guid><dc:creator><![CDATA[Jud4s]]></dc:creator><pubDate>Tue, 27 Jul 2010 17:49:51 GMT</pubDate></item><item><title><![CDATA[Reply to namspace includen on Tue, 27 Jul 2010 17:56:19 GMT]]></title><description><![CDATA[<p>Komisch; denn das mit dem int ist definitiv falsch so.</p>
<p>Kann es sein, dass Du vergessen hast, Dein Programm gegen die boost-Thread-Bibliothek zu linken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932715</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 27 Jul 2010 17:56:19 GMT</pubDate></item></channel></rss>