cpp und h Dateien doppelt verwenden
-
Heiho
es geht eigentlich nur darum
Ich habe zwei klassen, pro klasse eine cpp und eine h Datei welche ich fuer mein Hauptprojekt entwickelt habe.
Nun ist ein zweites projekt hinzugekommen welches die beiden klassen ebenfals verwenden muss.
Das includen geht ja problemlos
#include ..\Other\bla.h
nur der linker jammert nu "unresolved .."
logisch da die dazugehoerigen cpp dateien nicht mitcompiliert wurden...
wie kann ich das nun veranlassen ?
ein einfaches kopieren der cpp ist suboptimal da ich dan aenderungen immer uebertragen mussdank
-
Die einfachste Möglichkeit: Du übergibst dem Compiler den Namen der CPP-Datei mit, damit er sie ebenfalls compilieren und ins Programm reinlinken kann. Eleganter ist es, eine Library (.lib bzw. .a) aus der CPP zu erzeugen und dem Linker mitzugeben.
-
Kommt auch drauf an wie du kompilierst, sprich, ob du mit ner IDE arbeitest. In dem Fall gibts vermutlich irgendwo einen Menuepunkt wo du die entsprechenden Dateien in dein Projekt einbindest (oder so aehnlich, hab da ehrlich egsagt keine grosse Ahnung von). Genauere Infos kann dir da bestimmt jemand im entsprechenden IDE Forum hier geben.
Oder du arbeitest wie ich von der Kommandozeile aus mit gcc und evtl. make, dann gibst du dem Linker am Ende die entsprechenden Objektdateien als Parameter mit, genau wie alle anderen Objektdateien auch.
-
arbeite mit der IDE VS 2k5
Hab es nun wie vorgeschlagen geloest das ich
#include "..\Other\Bla.h"
#include "..\Other\Bla.cpp"
mache, sieht nicht schick aus, aber erfuellt seinen zweck, danke
-
Mr Evil schrieb:
arbeite mit der IDE VS 2k5
Hab es nun wie vorgeschlagen geloest das ich
#include "..\Other\Bla.h"
#include "..\Other\Bla.cpp"
mache, sieht nicht schick aus, aber erfuellt seinen zweck, dankeDas habe ich weder vorgeschlagen noch ist es wirklich hilfreich. Per #include solltest du nur die Header einbinden, sonstige Quelldateien gibst du dem Compiler direkt mit, z.B. per:
g++ main.cpp ..\other\bla.cpp [...](bei VC kannst du die betroffenen Dateien ins Projekt reinziehen, die Oberfläche kümmert sich um den Rest)
-
reinziehen is nich, da er es dann verschiebt, es soll aber beide projekte direkt nacheinander per batch compilierbar bleiben
//dazuedit
add->add existing files->raussuchen aus dem anderen projekt
scheint zu funktionieren, dann ist es nur doppelt gefuehrt aber nur einmal vorhanden