<?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[Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt]]></title><description><![CDATA[<p>Es geht um Folgendes:</p>
<p>Meine Module müssen von einem externen Szenariengenerator genutzt werden, weshalb in den Header-Files folgende Funktionen stehen müssen, damit der Generator auf sie zugreifen kann:</p>
<pre><code>extern &quot;C&quot; cSimpleModule* create&lt;modulname&gt;(){
    return new &lt;modulname&gt;();
}

extern &quot;C&quot; void destroy&lt;modulname&gt;(cSimpleModule * csm){
    delete csm;
}
</code></pre>
<p>Es gibt in meinem Projekt einige Module, aber nur bei einem einzigen meckert der Compiler - er behauptet, diese Funktion sei anderswo schon einmal definiert worden. ABER: Wenn ich der Funktion auch noch die absurdesten Fantasienamen gebe, bleibt dieser Fehler bestehen (und das ist es, was mich verdutzt).</p>
<p>Hier einmal die Fehlermeldungen im Detail:</p>
<p>1. out/gcc-debug//src/PlcEncap.o: In function <code>destroyPlcMAC': /home/edema/workspace/libPowerlineBasic/src/PlcMAC.h:151: multiple definition of</code>destroyPlcMAC'<br />
out/gcc-debug//src/PlcMAC.o:/usr/include/c++/4.3/bits/ios_base.h:125: first defined here</p>
<p>2. out/gcc-debug//src/PlcEncap.o: In function <code>createPlcMAC': /home/edema/workspace/libPowerlineBasic/src/PlcMAC.h:147: multiple definition of</code>createPlcMAC'<br />
out/gcc-debug//src/PlcMAC.o:/home/edema/workspace/libPowerlineBasic/src/PlcMAC.h:147: first defined here</p>
<p>Bei allen Modulen bis auf eines funktionieren die Funktionen (durch Auskommentieren der Problemstelle überprüft). Daher meine Frage: An was könnte es noch liegen? Ich bin für Mutmaßungen offen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/274962/merkwürdiger-fehler-der-sich-meinen-behebungsversuchen-arglistig-widersetzt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 06:21:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/274962.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Oct 2010 09:48:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 09:48:20 GMT]]></title><description><![CDATA[<p>Es geht um Folgendes:</p>
<p>Meine Module müssen von einem externen Szenariengenerator genutzt werden, weshalb in den Header-Files folgende Funktionen stehen müssen, damit der Generator auf sie zugreifen kann:</p>
<pre><code>extern &quot;C&quot; cSimpleModule* create&lt;modulname&gt;(){
    return new &lt;modulname&gt;();
}

extern &quot;C&quot; void destroy&lt;modulname&gt;(cSimpleModule * csm){
    delete csm;
}
</code></pre>
<p>Es gibt in meinem Projekt einige Module, aber nur bei einem einzigen meckert der Compiler - er behauptet, diese Funktion sei anderswo schon einmal definiert worden. ABER: Wenn ich der Funktion auch noch die absurdesten Fantasienamen gebe, bleibt dieser Fehler bestehen (und das ist es, was mich verdutzt).</p>
<p>Hier einmal die Fehlermeldungen im Detail:</p>
<p>1. out/gcc-debug//src/PlcEncap.o: In function <code>destroyPlcMAC': /home/edema/workspace/libPowerlineBasic/src/PlcMAC.h:151: multiple definition of</code>destroyPlcMAC'<br />
out/gcc-debug//src/PlcMAC.o:/usr/include/c++/4.3/bits/ios_base.h:125: first defined here</p>
<p>2. out/gcc-debug//src/PlcEncap.o: In function <code>createPlcMAC': /home/edema/workspace/libPowerlineBasic/src/PlcMAC.h:147: multiple definition of</code>createPlcMAC'<br />
out/gcc-debug//src/PlcMAC.o:/home/edema/workspace/libPowerlineBasic/src/PlcMAC.h:147: first defined here</p>
<p>Bei allen Modulen bis auf eines funktionieren die Funktionen (durch Auskommentieren der Problemstelle überprüft). Daher meine Frage: An was könnte es noch liegen? Ich bin für Mutmaßungen offen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962005</guid><dc:creator><![CDATA[HolgerK1981+]]></dc:creator><pubDate>Wed, 06 Oct 2010 09:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 09:52:57 GMT]]></title><description><![CDATA[<p>Vielleicht fehlt ein Header-Guard?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962009</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 06 Oct 2010 09:52:57 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 10:04:41 GMT]]></title><description><![CDATA[<p>Implementationen haben in den seltensten Faellen was im Header zu suchen. Dadurch existiert in jeder Compilierungseinheit, dass diesen Header benutzt, eine Implementation dieser Funktion. Obwohl die Implementationen gleich sind, weiss der Linker/Compiler nicht, welche er benutzen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962014</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 06 Oct 2010 10:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 10:07:41 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21632">@knivil</a>: Die Idee bzw. Vorgabe, die Funktionen im Header anzulegen kommt leider nicht von mir - da hab' ich keinen Einfluß drauf. Auf den ersten Blick könnte man Ihre Antwort in die Kategorie &quot;Besserwisser&quot; einordnen, und auf den zweiten Blick ist sie auch nicht hilfreicher ...</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22666">@Belli</a>: Was ist ein Header-Guard?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962018</guid><dc:creator><![CDATA[HolgerK1981+]]></dc:creator><pubDate>Wed, 06 Oct 2010 10:07:41 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 10:10:51 GMT]]></title><description><![CDATA[<p>Sorry, knivil ... mein Browser hat zunächst nur der ersten Satz Ihres Beitrages angezeigt. Ich war etwas voreilig - ich bitte, dies zu entschuldigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962019</guid><dc:creator><![CDATA[HolgerK1981+]]></dc:creator><pubDate>Wed, 06 Oct 2010 10:10:51 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 10:12:02 GMT]]></title><description><![CDATA[<p>Wenn das so bleiben soll, darfst du diesen Header eben nur in einer einzigen .cpp-Datei einbinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962020</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 06 Oct 2010 10:12:02 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 10:12:53 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21632">@knivil</a>: Das Header-File wird nur von einem .cc-File benutzt, daher ist dies als Ursache des Problems ausgeschlossen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962022</guid><dc:creator><![CDATA[HolgerK1981+]]></dc:creator><pubDate>Wed, 06 Oct 2010 10:12:53 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 10:17:20 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#ifndef ALREADY_INCLUDED
#define ALREADY_INCLUDED

// hier deine Deklarationen

#endif
</code></pre>
<p>Sinn und Zweck ist es dabei, dass der Compiler den Inhalt nur einmal zu Gesicht bekommt, wenn mehrere Dateien diesen Header einbinden. Schau dir einmal die Standardbibiothek an, alle Dateien haben einen solchen Include-Wächter. Damit kann man also<br />
#include &lt;vector&gt;<br />
#include &lt;vector&gt;<br />
schreiben, ohne dass der Compiler meckert. Der Name sollte natürlich anders lauten, irgendetwas mit Bezug auf den Datei/Klassennamen.<br />
Wenn du allerdings die Heder-Datei nicht verändern kannst, dann darfst du sie auch nur einmal einbinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962029</guid><dc:creator><![CDATA[Vicious Falcon]]></dc:creator><pubDate>Wed, 06 Oct 2010 10:17:20 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 10:36:12 GMT]]></title><description><![CDATA[<p>Header-Guards sind schon vorhanden (wusste nur nicht, dass das so heißt). Das hilft leider nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962034</guid><dc:creator><![CDATA[HolgerK1981+]]></dc:creator><pubDate>Wed, 06 Oct 2010 10:36:12 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 10:51:48 GMT]]></title><description><![CDATA[<p>HolgerK1981+ schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21632">@knivil</a>: Das Header-File wird nur von einem .cc-File benutzt, daher ist dies als Ursache des Problems ausgeschlossen.</p>
</blockquote>
<p>Auch von genau einem? <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="🙂"
    /> Ansonsten ist wahrscheinlich die Ursache woanders zu finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962037</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 06 Oct 2010 10:51:48 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 11:28:56 GMT]]></title><description><![CDATA[<p>Man könnte auch alles inline machen, in Kombination mit Headerguards sollte dies das Problem beheben. static Variablen in den Funktionen wurden dann natürlich nicht mehr wie geplant funktionieren.</p>
<p>Das alles ist am Herumgedoktere an den Symptomen, das wirkliche Problem ist dies:</p>
<p>HolgerK1981+ schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21632">@knivil</a>: Die Idee bzw. Vorgabe, die Funktionen im Header anzulegen kommt leider nicht von mir - da hab' ich keinen Einfluß drauf.</p>
</blockquote>
<p>Wenn geballte Inkompetenz mit der Macht verbunden ist, diese auch durchzusetzen, dann kann man einfach nicht mehr helfen. Erst wenn dieses Problem gelöst ist, kann man eine zufriedenstellende Lösung finden (und diese Lösung ist auch ganz einfach: Das was man normalerweise macht).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962056</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 06 Oct 2010 11:28:56 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdiger Fehler, der sich meinen Behebungsversuchen arglistig widersetzt on Wed, 06 Oct 2010 12:09:40 GMT]]></title><description><![CDATA[<p>&quot;Inline&quot; hat geholfen.</p>
<blockquote>
<p>Wenn geballte Inkompetenz mit der Macht verbunden ist, diese auch durchzusetzen, dann kann man einfach nicht mehr helfen. Erst wenn dieses Problem gelöst ist, kann man eine zufriedenstellende Lösung finden (und diese Lösung ist auch ganz einfach: Das was man normalerweise macht).</p>
</blockquote>
<p>Oje ... das klingt ja sehr revolutionär ... ich bin schon zufrieden, wenn's einfach nur klappt. Schön muss es nicht sein ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1962089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1962089</guid><dc:creator><![CDATA[HolgerK1981+]]></dc:creator><pubDate>Wed, 06 Oct 2010 12:09:40 GMT</pubDate></item></channel></rss>