C++ Programm Layout (multiple definition)

Tyg3r

Erfahrenes Mitglied
Hi,

ich verwende zum coden den Code::Blocks mit dem GNU GCC compiler und erhalte bei folgenden Scripten die Compiler Meldung: multiple definition of 'CFW::fkt()' ...

mein.cpp
Code:
#include <iostream>
#include <CFW_class.cpp>

using namespace std;

int main(){
    std::cout << "test" << std::endl;
}

CFW_class.h
Code:
class CFW
{
    public:
        void static fkt();
};

CFW_class.cpp
Code:
#include <CFW_class.h>

void CFW::fkt(){
    // do something
}

Ich bin am Ende mit meinem Latein :(
Sehr Ihr dort einen Fehler oder meint Ihr es liegt am Compiler?

Vielen Dank für Eure Hilfe ;)
 
Zuletzt bearbeitet:
Hi,

ich verwende zum coden den Code::Blocks mit dem GNU GCC compiler und erhalte bei folgenden Scripten die Compiler Meldung: multiple definition of 'CFW::fkt()' ...

mein.cpp
Code:
#include <iostream>
#include <CFW_class.cpp> // 1. Bindet man keinen Quellcode ein 2. Denke ich nicht das die Datei in deinem angegebenen Include-Verzeichnisses des Compilers liegt.

using namespace std;

int main(){
    std::cout << "test" << std::endl;
}

CFW_class.h
Code:
class CFW
{
    public:
        void static fkt();
};

CFW_class.cpp
Code:
#include <CFW_class.h> // Siehe oben..

void CFW::fkt(){
    // do something
}

Ich bin am Ende mit meinem Latein :(
Sehr Ihr dort einen Fehler oder meint Ihr es liegt am Compiler?

Vielen Dank für Eure Hilfe ;)

Hab Kommentare hinzugefügt.
 
Hi,

im richtigem Verzeichnis liegen sie, also habe dem Compiler die Pfade mitgeteilt, werden auch includet. Das mit dem Sourcecode wird allerdings das Problem sein, teste ich gleich mal.

Danke Dir :)

Gruß tyg3r
 
Allerdings stellt sich für mich jetzt die Frage, wie dem Compiler die Klasse bekannt gemacht wird, wenn ich diese nicht include? :rolleyes:

[ERLEDIGT]

-> Sources sind innerhalb des Projektes bekannt ;)
 
Zuletzt bearbeitet:
Zurück