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 muss

    dank



  • 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, danke

    Das 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


Anmelden zum Antworten