probleme mit linker



  • Hallo zusammen,
    ich bin Anfänger in C++ und hab Probleme mit dem Borland c++ Linker:
    Hier mal eine Darstellung meines Problems:

    Datei Test.cpp

    #include "Foo.h"
    
    int main() {
    	Foo* bar = new Foo();
    	bar -> print();
     return 0;
    }
    

    Datei foo.h

    #include <iostream>
    
    class Foo{
    	public:
    	void print();
    };
    

    Datei Foo.cpp

    #include "Foo.h"
    
    void Foo::print(){
    	cout<<"Hallo";
    }
    

    Die Fehlermeldung mit Borland Compiler ist konkret:

    Error: Unresolved external 'Foo::print()' referenced from E:\C++\BELEG\NEW2\H\TEST\TEST.OBJ

    Also sieht so aus, also könnte er nicht auf Foo.cpp zugreifen.
    Hab schon alles mögliche ausprobiert, nur leider ohne Erfolg - Danke für alle Vorschläge / Verbesserungen
    Grüße



  • Erst 'Foo.cpp' übersetzten und dann diese Objektdatei dazubinden, wenn Du 'Test.cpp' übersetzten lässt. Übrigens fehlt ein 'using std::cout;' in 'Foo.cpp' (und ich würde 'iostream' auch nur in der .cpp-Datei angeben -- mehrfach verschachtelte Header sind zwar nicht schlimm, aber auch nicht besonders hübsch, wenn keine äußeren Zusammenhänge zwischen 'Foo' und 'iostream' bestehen).



  • Danke für die Tips, nur leider bekomm ich beim compilieren von foo.cpp folgende Fehlermeldung

    Error: Unresolved external '_main' referenced from C:\PROGRAMME\BORLAND\BCC55\LIB\C0X32.OBJ



  • Du darfst 'foo.cpp' nicht binden, sondern nur compilieren. Wie das funktioniert, hängt aber vom Compiler ab und einen von Borland habe ich gerade nicht da. Ich schlage vor, Du lässt dich unbürokratisch ins BCB- oder 'Andere Compiler'-Forum überweisen.


Anmelden zum Antworten