<?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[undefined reference to]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein paar Programmdateien zusammengeschreiben:</p>
<p>linkedListElement.h<br />
linkedListElement.cpp -&gt; includet linkedList.h</p>
<p>linkedList.h -&gt; includet linkedListElement.h<br />
linkedList.cpp -&gt; includet linkedList.h</p>
<p>split.h -&gt; inlcudet linkedList.h<br />
split.cpp -&gt; includet split.h</p>
<p>main.h -&gt; includet split.h und linkedList.h<br />
main.cpp -&gt; includet main.h</p>
<p>Im Groben: linkedList stellt eine verkettete Liste bereit, linkedListElement die Elemente der Liste.<br />
Mit split kann ich einen string an bestimmen Stellen trennen, die vielen strings werden in einer linkedList zurückgegeben.<br />
In der main versuche ich einen string zu splitten und in eine linkedList zu schreiben und dann auszugeben.</p>
<p>Die CPP-Dateien kann ich alle problemlos compilen, aber beim linken bekomme ich Schwierigkeiten: alle Funktionen von Klassen, die ich in der main.cpp benutzt habe werden mit &quot;undefined reference to&quot; (z.B. `linkedList&lt;.....&gt;::linkedList() )</p>
<p>linkedList und linkedListElement benutzen Templates, ich hatte mal gelesen, das man dann die definition in die .h mit reinschreiben soll, aber das würde dann ja wieder &quot;redefinition of ...&quot; hervorrufen.</p>
<p>ich schreibe per Texteditor compile und linke auf der Konsole und hab es schon mit nur dem main linken versucht und mit allen compilaten:</p>
<pre><code>$ g++ -o main main.o
g++ -o main main.o split.o ../linkedList/linkedList.o ../linkedList/linkedListElement.o
</code></pre>
<p>hat jemend eine Idee, was ich falsch mache oder besser machen könnte?</p>
<p>Schönen Abend</p>
<p>Marc</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/246157/undefined-reference-to</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 07:40:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246157.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Jul 2009 18:50:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to undefined reference to on Thu, 23 Jul 2009 18:50:56 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein paar Programmdateien zusammengeschreiben:</p>
<p>linkedListElement.h<br />
linkedListElement.cpp -&gt; includet linkedList.h</p>
<p>linkedList.h -&gt; includet linkedListElement.h<br />
linkedList.cpp -&gt; includet linkedList.h</p>
<p>split.h -&gt; inlcudet linkedList.h<br />
split.cpp -&gt; includet split.h</p>
<p>main.h -&gt; includet split.h und linkedList.h<br />
main.cpp -&gt; includet main.h</p>
<p>Im Groben: linkedList stellt eine verkettete Liste bereit, linkedListElement die Elemente der Liste.<br />
Mit split kann ich einen string an bestimmen Stellen trennen, die vielen strings werden in einer linkedList zurückgegeben.<br />
In der main versuche ich einen string zu splitten und in eine linkedList zu schreiben und dann auszugeben.</p>
<p>Die CPP-Dateien kann ich alle problemlos compilen, aber beim linken bekomme ich Schwierigkeiten: alle Funktionen von Klassen, die ich in der main.cpp benutzt habe werden mit &quot;undefined reference to&quot; (z.B. `linkedList&lt;.....&gt;::linkedList() )</p>
<p>linkedList und linkedListElement benutzen Templates, ich hatte mal gelesen, das man dann die definition in die .h mit reinschreiben soll, aber das würde dann ja wieder &quot;redefinition of ...&quot; hervorrufen.</p>
<p>ich schreibe per Texteditor compile und linke auf der Konsole und hab es schon mit nur dem main linken versucht und mit allen compilaten:</p>
<pre><code>$ g++ -o main main.o
g++ -o main main.o split.o ../linkedList/linkedList.o ../linkedList/linkedListElement.o
</code></pre>
<p>hat jemend eine Idee, was ich falsch mache oder besser machen könnte?</p>
<p>Schönen Abend</p>
<p>Marc</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748469</guid><dc:creator><![CDATA[Th3Link]]></dc:creator><pubDate>Thu, 23 Jul 2009 18:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference to on Thu, 23 Jul 2009 18:59:27 GMT]]></title><description><![CDATA[<p>Th3Link schrieb:</p>
<blockquote>
<p>linkedList und linkedListElement benutzen Templates, ich hatte mal gelesen, das man dann die definition in die .h mit reinschreiben soll, aber das würde dann ja wieder &quot;redefinition of ...&quot; hervorrufen.</p>
</blockquote>
<p>Du musst die Templates selber mit Implementierung im Header definieren. Bei templates führt das auch nicht zu &quot;redefinition of...&quot;. Wenn du dagegen &quot;normale&quot; Funktionen/Klassen hast, die die Templates nur verwenden, solltest du die in einer cpp-Datei definieren.</p>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748470</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Thu, 23 Jul 2009 18:59:27 GMT</pubDate></item><item><title><![CDATA[Reply to undefined reference to on Thu, 23 Jul 2009 19:20:04 GMT]]></title><description><![CDATA[<p>ahh, ok, danke schön, das klappt. Ich hatte das #endif bei meinem ersten Versuch ganz oben plaziert, also da, wo es bei der normalen Headerdatei auch ist.</p>
<p>MfG Marc</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748483</guid><dc:creator><![CDATA[Th3Link]]></dc:creator><pubDate>Thu, 23 Jul 2009 19:20:04 GMT</pubDate></item></channel></rss>