helmito Geschrieben 5. September 2002 Teilen Geschrieben 5. September 2002 Und schon wieder hab ich ein kleines -so hoffe ich- Problem. :( Ich arbeite gerade an einem Projekt mit Hilfe des djgpp-Compiler, dass aus einer Hauptdatei und jeweils zwei Dateien mit Methodendefinition und Klassendeklarationen bestehen. Da ich in der Hauptdatei und in der Datei mit der Methodendefinition Funktionen benutze, die die "stdio.h" und die "string.h" voraussetzen, wollte ich zunächst diese Headerdateien exakt einmal in dem Hauptprogramm setzen. Als ich dann das Progi starten wollte erschien ein Compilerfehler und zwar bei den Dateien mit der Methodendefinition. Und zwar kennt er bspw. die Funktion strcpy nicht, obwohl ich ja die string.h, die dafür nötig ist, vorher im Hauptprogramm eingesetzt habe. Daraufhin habe ich die Headerdateien auch dort in die beiden Dateien (bzw. um genauer zu sein, in die Klassendefinition der entsprechenden Dateien) eingesetzt. Und siehe da die Compiler-Probleme sind zwar weg, jedoch erscheint jetzt ein Linkerfehler: "Error: multiple definition of ...". :confused: :confused: :confused: SO, hat jemand von euch vielleicht eine Idee, wie man dieses Problem lösen kann. Danke mfg helmito Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 5. September 2002 Teilen Geschrieben 5. September 2002 Das System der #includes und Headerdateien wird durch den Präprozessor bearbeitet, also auf Dateiebene. In jeder Quellcodedatei, in der eine Bibliotheksfunktion verwendet wird, muss die jeweilige Headerdatei eingebunden werden, entweder direkt oder über eine andere Headerdatei. Der Standort des Hauptprogramms hat damit nichts zu tun. Leider hast Du die Fehlermeldung nicht vollständig angegeben. Die Angabe, welches Symbol mehrfach definiert ist, und in welchen Modulen, ist für die Fehlersuche sehr hilfreich. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
helmito Geschrieben 6. September 2002 Autor Teilen Geschrieben 6. September 2002 Also die genauen Fehlerzeilen lauten: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Error: c:/djgpp/lib/gcc-lib/djgpp/3.1/libgcc.a(unwind-dw2-fde.o): In function '___register_frame_info': unwind-dw2-fde.o(100) Error: multiple definition of '___register_frame_info' Error: c:/djgpp/lib/libc.a(rfinfo.o)(.text+0x0):rfinfo.c: first defined here Error: collect2: ld returned 1 exit status There were some errors XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Hilft dir das weiter??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 6. September 2002 Teilen Geschrieben 6. September 2002 Kannst mir sagen, was genau in der Zeile mit dem ld-Kommando (also dem Linker-Aufruf) steht? Eventuell gibt es ein Problem mit der Reihenfolge, in der libgcc.a und libc.a eingebunden werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
helmito Geschrieben 6. September 2002 Autor Teilen Geschrieben 6. September 2002 Die oben genannten Zeilen sind genau 1:1 übernommen, da gibt es leider keine näheren Infos. Aber du hast mich da auf eine Idee gebracht und zwar kann man ja unter Options die Library-Liste ändern. In dieser Liste waren die library libc und liballeg vorhanden. Da ich in der Rhide-Hilfe irgendwann gelesen habe, dass die library libc automatisch schon bekannt ist, hab ich diese aus der Liste genommen. Danach hab ich das Programm gestartet und siehe da die Exe-Datei wurde gebildet. Nun muss ich mir nur noch anschauen, ob keine weiteren Probleme vorhanden sind. Wem dem nicht so ist meld ich mich noch einmal. Merci!!!! :marine :marine :marine :marine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.