Mehrere Dateien mit Code::Blocks



  • Hallo!

    Ich kann nicht einschätzen, wie blöd meine Frage ist, aber ich komm nicht weiter.

    Ich habe in Code::Blocks ein neues Projekt erstellt, und dann nacheinander 2 neue cpp Dateien und eine Headerdatei erstellt. Alle drei Dateien sind im selben Verzeichnis abgespeichert.

    // a.cpp
    #include "b.h"
    
    main(){}
    
    // b.h
    #ifndef B_INCLUDED
    #define B_INCLUDED
    
    int func(int);
    
    #endif // B_INCLUDED
    
    //c.cpp
    #include "b.h"
    
    int func(int a) {
    return a+1;
    }
    

    Wenn ich nun versuche, das Projekt zu "builden", kriege ich die Fehlermeldung

    Linking stage skipped (build target has no object files to link)
    

    Wenn ich nun versuche die c.cpp mittels "Build -> Compile current file" in eine o-Datei zu kompilieren, kriege ich die Fehlermeldung:

    undefined reference to `_WinMain@16'
    

    Was wie ich schon herausgefunden daherrührt dass sie keine main()-Funktion hat. Aber wie kompiliere ich nun dateien ohne main()-Funktion?

    Ich hab das ganze auch mal mit einem Kommandozeilen-compiler versucht zu kompilieren mittels "gcc a.cpp", hat aber auch nicht geklappt.



  • Ich habe in Code::Blocks ein neues Projekt erstellt, und dann nacheinander 2 neue cpp Dateien und eine Headerdatei erstellt. Alle drei Dateien sind im selben Verzeichnis abgespeichert.

    Und jetzt kommt die eine Million Frage: Hast du die Sources denn auch zum Projekt hinzugefügt als du sie erstellt hast? Also die Häckchen gemacht, die am Ende des Dialoges unten ankreuzbar waren?



  • Hm, also man kann ja bei "Add file to active projects in build target(s)" (was selbst ein Häkchen ist) die zwei Häkchen "Debug" und "Release" anklicken. Also nein hab ich nicht 😃
    Aber beim ersten Durchlauf wo ich die Häkchen grad gemacht habe hat er mir wieder eine Fehlermeldung gegeben, dass er die Referenz auf die Funktion "func" nicht finden kann, oder so ähnlich. Sicherheitshalber mach ich es jetzt aber nochmal



  • So nach viel Rumprobieren, hab ich statt "Empty File" als neues Projekt jetzt einfach "Console Application" gewählt, und es hat endlich funktioniert.
    Wenn noch jemand weiß, warum dass einen Unterschied macht, wäre toll, ansonsten bin ich um diese Uhrzeit aber wunschlos glücklich 😃


Anmelden zum Antworten