Zum Inhalt springen

Linker-Probleme


helmito

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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???

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...