Fehlermeldung genauer erklären "defined in both module"
-
ich hab beim schreiben eins Progs mit mehreren Formen für jede eine Unit erstellt. Ich erhalte jedoch folgende Warnung:
[Linker Warnung] Public symbol '_fmCreateWarparty' defined in both module C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\OPERATION GALAHAD\MAIN.OBJ and C:\PROGRAMME\BORLAND\CBUILDER6\PROJECTS\OPERATION GALAHAD\PREPARATION_WARPARTY.OBJDies erhalte ich für ALLE Formen. Ich hab mich mal in der main.h umgeschaut aber nichts gefunden was mir irgendwie seltsam vorkam.
Ich finde keine doppelte definition.
Liegt es vielleicht daran das ich im HEAD die cpp included hab?
Mir ist übrigens aufgefallen das immer die MAIN.obj erwähnt wird.main.h
#include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <Menus.hpp> #include "scanreport.cpp" #include "preparation_warparty.cpp" #include "preparation_lance.cpp" #include "preparation_battalion.cpp" #include "preparation_regiment.cpp"Unter public: hab ich nur folgendes:
public: // Anwender-Deklarationen __fastcall TfmStart(TComponent* Owner);
-
Hallo,
Hast du mal nachgeschaut wo fmCreateWarparty deklariert wird?
Im übrigen sollte man niemals cpp-Dateien inkludieren. Warum hast du das überhaupt gemacht?
-
Die Class ist in der Heahder von TfmCreateWarparty deklariert. Dies geschah ja eh automatisch durch die IDE. Wenn ich die .cpp nicht include kann ich aber nicht auf meine übrigen Formen und ihre Elemente zugreifen. Ich hab das bis jetzt immer so gemacht.
Aber bin ja Schüler und würd gerne Tipps erhalten.
-
Die cpp Datei in das Projekt mit aufnehmen, nicht includen
-
ja das hab ich ja uch gemacht. Schön brav über "dem Projekt hinzufügen" . trotzdem hab ich anscheinend was falsch gemacht.
-
Wenn du die cpps dem Projekt hinzugefügt hast und die notwendigen Header inkludiert hast sollte alles funktionieren. Mach es einfach mal so.
Wenn es dann Probleme gibt kannst du uns ja mal die Fehlermeldungen mitteilen. So wie du es jetzt machst wundert es nicht, dass Symbole mehrfach in den Übersetzungseinheiten auftauchen.
-
Ok ihr hatte recht. An alle N00bs die es so wie ich gemacht haben:
.cpp NIE NIE NIE direkt includen. IMMER die "Dem Projekt Hinzufügen" Option verwenden. Danach müsst ihr NUR die Header includen. Das wars.
Danke für eure Hilfe.
Bahala NA!