Unaufgelöstes Symbol, warum muss .cpp Datei ins Projekt ? (VC++ 6)



  • Hallo,

    Der Linker ist und bleibt für mich ein Buch mit sieben Siegeln, deshalb schonmal sorry, wenn meine Fragen dazu totaler Mist sind 🙂

    Also:
    Ich habe da ein paar Klassen die ich in meinem Projekt benutzen will.
    Diese liegen als .hpp/.cpp Dateien im Ordner "Include".

    In meinem Code schreibe ich jetzt einfach
    #include "MyClass.hpp"
    und würde annehmen, dass er die passende .cpp Datei automatisch findet und mitkompiliert.
    Klappt aber leider nicht, stattdessen muss ich "MyClass.cpp" erst dem Projekt hinzufügen (will ich aber nicht, weil dann mein schöner ClassView Brwoser total unübersichtlich wird).



  • Hallo,

    DerTrottel schrieb:

    (will ich aber nicht, weil dann mein schöner ClassView Brwoser total unübersichtlich wird).

    das mußt du aber machen, oder woher soll der Compiler wissen, daß die .cpp-Datei auch mit kompiliert werden soll?

    Wenn dir das wirklich nicht gefällt, kannst du die .cpp-Datei zuerst separat kompilieren und eine .lib erzeugen oder die entstehende .obj-Datei verwenden (dann müssen natürlich im neuen Projekt auch alle Module, die nötig sind, um die Abhängigkeiten in dieser .cpp-Datei aufzulösen, mitgelinkt werden), und nur diese in den Linker-Einstellungen als zusätzliche Bibliotheks/Objekt-Module im neuen Projekt angeben.

    MfG



  • Ok, aber warum meckert er dann nicht bei den von "MyClass" inkludierten Dateien?

    In "MyClass.hpp" steht zum Beispiel "#include MyOtherClass.hpp". Da wird "MyOtherClass.cpp" ja auch automatisch kompiliert und verlinkt.



  • DerTrottel schrieb:

    In "MyClass.hpp" steht zum Beispiel "#include MyOtherClass.hpp". Da wird "MyOtherClass.cpp" ja auch automatisch kompiliert und verlinkt.

    Nein, weder noch.



  • Im ClassBrowser kannst du ordner anlegen, da kannst du dann die
    Klassen hinschieben, die du gerade nicht brauchst, und schon ist es
    wieder übersichtlich.

    Devil



  • Man braucht die hpp/Include nicht hinzufügen. Eine CPP immer
    Ein Include ist ja nur das diese einfach dort eingefügt wird wo das include steht.
    Das Include wird durch den Inhalt der Includedatei ersetzt. (Einfach erklärt)

    Somit muss man die Includedatei auch nicht den Projekt hinzufügen.


Anmelden zum Antworten