<?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[Projekt aufteilen]]></title><description><![CDATA[<p>Ich hab mal eine allgemeine Frage zum Aufteilen eines Projekts in mehrere Dateien.<br />
Wie sollte man das am besten machen.</p>
<p>Sollte man die einzelnen Dateien in eine große main.cpp includen z.B.</p>
<pre><code class="language-cpp">#include &quot;header.h&quot;
#include &quot;client.cpp&quot;
#include &quot;server.cpp&quot;
//client und server hat nichts zu bedeuten, mir ist nurnix besseres grad eingefalle
</code></pre>
<p>Oder sollte ich sie besser erst ebim combilieren zusammenfügen damit ich das ganze nachher in ne makefile zusammenfügen kann</p>
<pre><code>g++ server.cpp client.cpp main.cpp
</code></pre>
<p>Und wenn ja wie mach ich das dann mit den einzelnen funktionen?<br />
Als extern Deklarieren?<br />
Und dann in der main.cpp aufrufen?</p>
<pre><code class="language-cpp">//server.cpp
int extern online() {
cout &lt;&lt; &quot;Server online&quot; &lt;&lt; endl;
return 0;
}

//main .cpp
int main() {
online();
return 0;
}
</code></pre>
<p>Und noch zu guter letzt: Was mach ich dann mit den headern? in jede Datei einzeln includen oder wie?</p>
<p>Würde mich freuen wenn mir das einer kurz und anschaulich erklären könnte wie man das am besten macht mit dem Aufteilen eines Projekts.<br />
Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/135403/projekt-aufteilen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 23:18:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/135403.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Feb 2006 20:27:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Projekt aufteilen on Wed, 01 Feb 2006 20:27:35 GMT]]></title><description><![CDATA[<p>Ich hab mal eine allgemeine Frage zum Aufteilen eines Projekts in mehrere Dateien.<br />
Wie sollte man das am besten machen.</p>
<p>Sollte man die einzelnen Dateien in eine große main.cpp includen z.B.</p>
<pre><code class="language-cpp">#include &quot;header.h&quot;
#include &quot;client.cpp&quot;
#include &quot;server.cpp&quot;
//client und server hat nichts zu bedeuten, mir ist nurnix besseres grad eingefalle
</code></pre>
<p>Oder sollte ich sie besser erst ebim combilieren zusammenfügen damit ich das ganze nachher in ne makefile zusammenfügen kann</p>
<pre><code>g++ server.cpp client.cpp main.cpp
</code></pre>
<p>Und wenn ja wie mach ich das dann mit den einzelnen funktionen?<br />
Als extern Deklarieren?<br />
Und dann in der main.cpp aufrufen?</p>
<pre><code class="language-cpp">//server.cpp
int extern online() {
cout &lt;&lt; &quot;Server online&quot; &lt;&lt; endl;
return 0;
}

//main .cpp
int main() {
online();
return 0;
}
</code></pre>
<p>Und noch zu guter letzt: Was mach ich dann mit den headern? in jede Datei einzeln includen oder wie?</p>
<p>Würde mich freuen wenn mir das einer kurz und anschaulich erklären könnte wie man das am besten macht mit dem Aufteilen eines Projekts.<br />
Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/983504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983504</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Wed, 01 Feb 2006 20:27:35 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt aufteilen on Wed, 01 Feb 2006 20:48:50 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &quot;client.cpp&quot;
</code></pre>
<p>ist erst mal grundlegend verkehrt. Würde zwar funktionieren, aber ist vom Konzept her falsch.</p>
<p>Jede Klasse erhält in der Regel eine Header- und eine Cpp-Datei Die Header nur wenn nötig inkludieren. Das Schüsselwort <em>extern</em> kannst Du mal vergessen. Das wird nur bei Variablen benötigt. In eine geeignete Header einfach einen Prototypen unterbringen und in einer Cpp-Datei definieren. Zum Compilieren jede Cpp-Datei einzeln compilieren und dann die Objekt-Dateien linken. Am besten geht das mit einem Makefile. Ein einfaches Makefile sieht etwa so aus:</p>
<pre><code>meinprog: client.o server.o
</code></pre>
<p>Make weiß, wie er von einer cpp-Datei auf eine .o-Datei und dann zu einem funktionierenden Programm kommt. Dann brauchst Du den Compiler und den Linker nicht explizit aufzurufen.</p>
<p>Gruß</p>
<p>Tommi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/983524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983524</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 01 Feb 2006 20:48:50 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt aufteilen on Wed, 01 Feb 2006 20:59:25 GMT]]></title><description><![CDATA[<p>Die makefiles sind mir klar. Danke</p>
<p>Wenn ich dich richtig verstanden hab also etwa so:</p>
<pre><code class="language-cpp">//proto.h
int online();
int offline();

//server
#include &quot;proto.h&quot;
int online() {
cout &lt;&lt; &quot;Server online&quot; &lt;&lt; endl;
return 0;
}
int offline() {
cout &lt;&lt; &quot;Server offline&quot; &lt;&lt; endl;
return 0;
}

//main.cpp
#include &quot;proto.h&quot;
int main() {
online();
offline();
return0;
}
</code></pre>
<pre><code>#makefile
make: main.o server.o
    g++ -o server main.o server.o

main.o: main.cpp
    g++ -c main.cpp

server.o: server.cpp
    g++ -c server.cpp
</code></pre>
<p>Und es reicht wenn man nur die prototypen angibt? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/983534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983534</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Wed, 01 Feb 2006 20:59:25 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt aufteilen on Wed, 01 Feb 2006 21:20:51 GMT]]></title><description><![CDATA[<p>Ja so in etwa. Bis auf die fehlenden std::. Aber das wirst Du der kürze halber wohl weg gelassen haben.</p>
<p>Aber ich würde zu einer server.cpp genau eine server.h mit den entsprechenden Deklarationen machen. Und jede Header erhält die berühmnten include-guards.</p>
<p>Und ausserdem: Make hat einige eingebaute Regeln. Das läßt sich weit kürzer schreiben</p>
<p>also:<br />
server.h:</p>
<pre><code class="language-cpp">#ifndef SERVER_H
#define SERVER_H
int online();
int offline();
#endif // SERVER_H
</code></pre>
<p>server.cpp:</p>
<pre><code class="language-cpp">#include &quot;server.h&quot; // Immer mit der zugehörigen Header-Datei anfangen.
                    // das vermeidet vergessene Abhängigkeiten im Header.
#include &lt;iostream&gt;
int online() {
  std::cout &lt;&lt; &quot;Server online&quot; &lt;&lt; std::endl;
  return 0;
}
int offline() {
  std::cout &lt;&lt; &quot;Server offline&quot; &lt;&lt; std::endl;
  return 0;
}
</code></pre>
<p>main.cpp:</p>
<pre><code class="language-cpp">#include &quot;server.h&quot;
int main(int argc, char* argv[]) {
  online();
  offline();
  return 0;
}
</code></pre>
<p>und noch das Makefile:</p>
<pre><code>myprog: server.o main.o
	$(CXX) -o $@ $^
</code></pre>
<p>Ein beherztes &quot;make&quot; und schon entsteht ein kleines Programm myprog, was sich mit ./myprog direkt ausführen läßt.</p>
<p>Tommi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/983555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983555</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 01 Feb 2006 21:20:51 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt aufteilen on Wed, 01 Feb 2006 21:28:24 GMT]]></title><description><![CDATA[<p>Ok alles klar danke für die Hilfe</p>
<p>Zu dem maketeil kann ich nur sagen. Wow! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/983559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983559</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Wed, 01 Feb 2006 21:28:24 GMT</pubDate></item><item><title><![CDATA[Reply to Projekt aufteilen on Wed, 01 Feb 2006 21:30:36 GMT]]></title><description><![CDATA[<p>Hmm, mit <a href="http://www.scons.org" rel="nofollow">SCons</a> ist das einfacher und weitaus flexibler (auch ohne Python-Kenntnisse). Makefiles muten irgendwie vorsintflutlich an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/983561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/983561</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Wed, 01 Feb 2006 21:30:36 GMT</pubDate></item></channel></rss>