mehrere .cpp dateien in einem Projekt!
-
Hallo,
mache mich jetzt schon eine ganze weile damit rum. Wie kann ich in einem Projekt mehrere .CPP Dateien laden und ausführen? Z.b. initialize.cpp und main.cpp! Wie bekomme ich das Projekt dazu die initialize.cpp vor der main.cpp zu laden. Ich habe schon viele quellcodes gesehen die funktionen in seperaten dateien haben. Es wird auch kein #include "xxx.cpp" verwendet.
Bitte helft mir!
Damit ich nicht alles in eine .cpp datei schreiben muss und die anderen Datein für andere Projekte auch verwenden kann und nicht immer neu schreiben muss!
-
Hallo!
das ist möglich, indem du header dateien verwendest. Bsp:
Tools.hvoid tool();
Tools.cpp
#include "Tools.h" void tool() { // tue was }
die funktionen kannst du dann in der main datei verwenden, indem du Tools.h einbindest.
Grüße
-
Gibt es auch noch ein anderen weg? Ohne tools.h? Bei den beispielprojekten ist auch kein tools.h included.
Mein Code (bsp):
main.cpp
#include "projekt.cpp" void main() { projekt.starten(); }
projekt.cpp
#include "projekt.h" void projekt::starten() { // Quellcode }
und meine projekt.h
struct projekt{ void starten(); }projekt;
wo ist der wurm drinnen?
Kann man irgendwo etwas in den Projekt einstellungen ändern?
Wäre cool wenn es noch eine andere möglichkeit gibt!Gruss
-
DragonShaolin schrieb:
Gibt es auch noch ein anderen weg? Ohne tools.h? Bei den beispielprojekten ist auch kein tools.h included.
kannst du mal so ein beispiel bzw. ein stück des beispiels posten? ich kann mir nicht wirklich was darunter vorstellen.
-
Hallo,
du hast oben in einer deiner Files "#include "projekt.cpp"" geschrieben.
Meines Wissens kann man keine .cpp-Files includen, sondern nur Include-Dateien (*.h-Files oder *.hpp-Files).
Wenn du mehrere Cpp's in deinem Projekt verwenden willst, und möglichst auch in einer cpp-Datei Funktionen aufrufen willst, die in der andern definiert sind, dann sind Header-Dateien das beste Mittel. Füge der Header-Datei die Protoypen der Funktionen hinzu, die du benutzen willst, benenne sie am besten gleich nach der cpp-Datei.
Du könntest auch in der jeweiligen cpp-Datei einen Prototyp der Funktion, die du aus der anderen cpp-Datei verwenden willst, einfügen, bevor du sie aufrufst.
Hoffe ich konnte etwas helfen.
-
Ich habe es jetzt soweit. Habe alles falsch includiert und in dem Code waren fehler!
Danke für eure Hilfe!
-
Es ist immer sinnvoll, zu schreiben, wie man ein Problem gelöst hat, wenn man selbst drauf kam. Dann kann jemand u.U. noch einen Tipp geben, was man hätte eleganter machen können.
-
JensE schrieb:
Hallo,
...
Meines Wissens kann man keine .cpp-Files includen, sondern nur Include-Dateien (*.h-Files oder *.hpp-Files).Meines Wissens schon, hab ich aufjeden Fall schon gemacht um ne Template aufzuteilen. Vielleicht ist das aber Compilerabhängig.
-
Ist es nicht so das:
der Compiler eine Liste aller .cpp Dateien bekommt und jede der cpp als Übersegtzungseinheit in eine für den Linker verwendbare Datei übersetzt ?
Wenn Du z.B. test.cpp in diese Liste aufnimmst und irgendwo #include test.cpp schreibst wird der Linker nicht viel von halten ?!
-
also ich hab folgendes gemacht:
ich hab ne Template-Klasse in einer Header-Datei erstellt (Deklaration) und den Code (definition) hab ich in einer cpp-datei geschrieben. Erst dann hab ich gemerkt das man eine Template nicht aufteilen kann. Also um es zu testen hab ich ganz unten in der Header-Datei die cpp mit include eingebunden. Dann ging das. (mit .net)EDIT:
Das funktioniert deshalb weil der Präprozesor zuerst aufgerufen wird und den Code bearbeitet erst dann kommt der compiler
-
Nun häng die .cpp mal mit ins Projekt, so wie es jeder machen würde der die Dateien bekommt....
Tip: Benenne es doch in .templ o.ä. um und includiere dies.
.cpp hat bei manchem Compilern eine sonderstellung und kann zu vewirrung führen wenn man die includet....
(Hab das mit den Templates übrigens genauso erlebt ;o)