<?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 references]]></title><description><![CDATA[<p>Wieso habe ich sie immer in jedem Programm?<br />
Kann mir jemand sagen, wann die entstehen?</p>
<p>Habe versucht, Folgendes zu kompilieren:</p>
<pre><code class="language-cpp">// main.cpp
#include &quot;Tree.h&quot;

int main()
{
    Tree tree(10);
    tree.print_whole_tree();
    tree.grow(10);
    tree.print_whole_tree();
}
</code></pre>
<pre><code class="language-cpp">// Tree.h
#ifndef TREE_H
#define TREE_H

class Tree
{
  private:
    int height, leaves;
    void print_height();
    void print_leaves();

  public:
    Tree(int initialHeight);
    ~Tree();
    void print_whole_tree();
    void grow(int years);
};

#endif
</code></pre>
<pre><code class="language-cpp">// Tree.cpp
#include &lt;iostream&gt;
#include &quot;Tree.h&quot;

namespace std;

Tree::Tree(int initialHeight)
{
    height = initialHeight;
    leaves = 0;
}

Tree::~Tree()
{
    cout &lt;&lt; &quot;D E S T R U C T I O N!&quot;;
}

void Tree::print_whole_tree()
{
	print_height();
	print_leaves();
}

void Tree::print_height()
{
    cout &lt;&lt; height &lt;&lt; endl;
}

void Tree::print_leaves()
{
    cout &lt;&lt; leaves &lt;&lt; endl;
}

void Tree::grow(int years)
{
    height += years;
    leaves += years*25;
}
</code></pre>
<p>Und ich bekomme immer diese Fehlermeldungen:<br />
<a href="http://www.qpic.ws/images/j4Y68980.jpg" rel="nofollow">http://www.qpic.ws/images/j4Y68980.jpg</a></p>
<p>Alle Dateien liegen im gleichen Ordner.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253439/undefined-references</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 19:05:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253439.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Nov 2009 13:42:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Undefined references on Mon, 02 Nov 2009 13:42:29 GMT]]></title><description><![CDATA[<p>Wieso habe ich sie immer in jedem Programm?<br />
Kann mir jemand sagen, wann die entstehen?</p>
<p>Habe versucht, Folgendes zu kompilieren:</p>
<pre><code class="language-cpp">// main.cpp
#include &quot;Tree.h&quot;

int main()
{
    Tree tree(10);
    tree.print_whole_tree();
    tree.grow(10);
    tree.print_whole_tree();
}
</code></pre>
<pre><code class="language-cpp">// Tree.h
#ifndef TREE_H
#define TREE_H

class Tree
{
  private:
    int height, leaves;
    void print_height();
    void print_leaves();

  public:
    Tree(int initialHeight);
    ~Tree();
    void print_whole_tree();
    void grow(int years);
};

#endif
</code></pre>
<pre><code class="language-cpp">// Tree.cpp
#include &lt;iostream&gt;
#include &quot;Tree.h&quot;

namespace std;

Tree::Tree(int initialHeight)
{
    height = initialHeight;
    leaves = 0;
}

Tree::~Tree()
{
    cout &lt;&lt; &quot;D E S T R U C T I O N!&quot;;
}

void Tree::print_whole_tree()
{
	print_height();
	print_leaves();
}

void Tree::print_height()
{
    cout &lt;&lt; height &lt;&lt; endl;
}

void Tree::print_leaves()
{
    cout &lt;&lt; leaves &lt;&lt; endl;
}

void Tree::grow(int years)
{
    height += years;
    leaves += years*25;
}
</code></pre>
<p>Und ich bekomme immer diese Fehlermeldungen:<br />
<a href="http://www.qpic.ws/images/j4Y68980.jpg" rel="nofollow">http://www.qpic.ws/images/j4Y68980.jpg</a></p>
<p>Alle Dateien liegen im gleichen Ordner.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802126</guid><dc:creator><![CDATA[C-reator]]></dc:creator><pubDate>Mon, 02 Nov 2009 13:42:29 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined references on Mon, 02 Nov 2009 13:51:31 GMT]]></title><description><![CDATA[<p>Tja, weil Tree.cpp nicht kompiliert und das Objectfile gegen dein main.cpp-Kompilat gelinkt wurde.<br />
So geht das:</p>
<pre><code>$ g++ -c Tree.cpp   # wir wollen nur kompilieren, nicht linken!
$ g++ Tree.o main.cpp -o main   # kompiliere main.cpp und linke mit Tree.o
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1802135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802135</guid><dc:creator><![CDATA[nichtsnutz]]></dc:creator><pubDate>Mon, 02 Nov 2009 13:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined references on Mon, 02 Nov 2009 14:17:03 GMT]]></title><description><![CDATA[<p>Falls einem die Bequemlichkeit vor Kompilierzeit geht, kann man auch einfach folgendes machen (ist jedoch nicht zu empfehlen bei größen Projekten, sondern nur für kleine Testprogramme):</p>
<pre><code>g++ Tree.cpp  main.cpp -o main   # Kompilieren aller Quelldateien und anschließend alles zusammenlinken
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1802144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802144</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 02 Nov 2009 14:17:03 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined references on Mon, 02 Nov 2009 15:30:40 GMT]]></title><description><![CDATA[<blockquote>
<p>c++ main.cpp -o MAIN.EXE</p>
</blockquote>
<p>Hier verlangst Du vom Compiler, main.cpp nicht nur zu übersetzen, sondern auch gleich in ein ausführbares Programm zu verwandeln. Du hast hier nur eine Übersetzungseinheit: main.cpp mit den Zeilen aus Tree.h. Die Definitionen für die fehlenden Funktionen stehen allerdings in Tree.cpp drin. Der Compiler weiß das allerdings nicht. Er kompiliert nichts automatisch. Du musst ihm schon sagen, dass er auch Tree.cpp übersetzen soll.</p>
<p>Versuch's mal in 2 Schritten:</p>
<pre><code>g++ -c main.cpp
g++ -c Tree.cpp

g++ -o MAIN.EXE main.o Tree.o
</code></pre>
<p>1. Kompilieren<br />
2. &quot;Linken&quot;</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802180</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Mon, 02 Nov 2009 15:30:40 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined references on Mon, 02 Nov 2009 17:29:34 GMT]]></title><description><![CDATA[<p>Kleiner Tipp:<br />
Arbeite dich in make ein und verwende Makefiles. Hier im Forum gibts sogar ne Vorlage. Das spart nerven. Oder nutze eine IDE. Aber das muss natürlich nicht :).<br />
Oder nutze andere Buildsysteme wie jam, scons etc.. da gibts viele Alternativen.<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802247</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 02 Nov 2009 17:29:34 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined references on Mon, 02 Nov 2009 18:36:01 GMT]]></title><description><![CDATA[<p>Hm, danke für die Hilfen, aber das scheint auch nicht zu funktionieren ...</p>
<p>@nichtsnutz:<br />
Bei dir kommt bei mir:<br />
<a href="http://www.qpic.ws/images/uwu86654.jpg" rel="nofollow">http://www.qpic.ws/images/uwu86654.jpg</a></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/36159">@Sebastian</a> Pizer:<br />
Deins funktioniert auch nicht, dabei kommt:<br />
<a href="http://www.qpic.ws/images/Hmb86774.jpg" rel="nofollow">http://www.qpic.ws/images/Hmb86774.jpg</a></p>
<p>Ich verstehe die Fehlermeldungen nicht; z.B. cout und endl sind doch declared, da ich den Namespace std eingebunden habe, ebenso &lt;iostream&gt; includet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802276</guid><dc:creator><![CDATA[C-reator]]></dc:creator><pubDate>Mon, 02 Nov 2009 18:36:01 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined references on Mon, 02 Nov 2009 18:50:22 GMT]]></title><description><![CDATA[<p>C-reator schrieb:</p>
<blockquote>
<p>...da ich den Namespace std eingebunden habe...</p>
</blockquote>
<p>Hast du nicht. &quot;namespace std;&quot; und &quot;using namespace std;&quot; haben ganz unterschiedliche Bedeutungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802295</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 02 Nov 2009 18:50:22 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined references on Mon, 02 Nov 2009 19:09:57 GMT]]></title><description><![CDATA[<p>C-reator schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/36159">@Sebastian</a> Pizer:<br />
Deins funktioniert auch nicht, dabei kommt:</p>
<pre><code>&gt; g++ -c main.cpp
internal error in mingw32_gt_pch_use_address, at [...]
main.cpp:1: fatal error: had to relocate PCH
compilation terminated.
</code></pre>
</blockquote>
<p>Die Fehlermeldung habe ich noch nie vorher gesehen. &quot;internal error&quot; heißt aber meist, dass es sich um einen Bug im Compiler handelt. Es sieht so aus, als hättest Du zwischendurch mal einen Header &quot;kompiliert&quot; (*.gch), der ihm jetzt nicht mehr passt (vielleicht beschädigte Datei?). Guck mal nach, ob du gch-Dateien da rumfliegen hast und wenn ja dann einfach löschen.</p>
<pre><code>g++ -c soundso.cpp
</code></pre>
<p>ist das normalste von der Welt -- muss also klappen, vorausgesetzt, dass soundso.cpp kompilierbar ist. <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>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802311</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Mon, 02 Nov 2009 19:09:57 GMT</pubDate></item><item><title><![CDATA[Reply to Undefined references on Mon, 02 Nov 2009 20:19:51 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>Die Fehlermeldung habe ich noch nie vorher gesehen. &quot;internal error&quot; heißt aber meist, dass es sich um einen Bug im Compiler handelt.</p>
</blockquote>
<p>Hatte so einen Fehler beim Visual Studio schon ein paar mal. Keine Ahnung, was da manchmal falsch läuft, aber meist benötigt es dann einen Neustart der IDE. (und/oder Neukompilierung).</p>
<p>Habe ich mir eh angewöhnt, bei sehr komischen, exotischen Fehler einfach mal Neu zu erstellen und wenn das nicht hilft mal VS neu starten.<br />
(siehe z.B 29.9.09 : <a href="http://drakon.ch/?id=&amp;offset=1" rel="nofollow">http://drakon.ch/?id=&amp;offset=1</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1802352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1802352</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 02 Nov 2009 20:19:51 GMT</pubDate></item></channel></rss>