ld gab 1 als Ende-Status zurück



  • Kann mir zufällig einer erklären was diese Fehlermeldung zu sagen hat???
    Bekomme Sie immer beim Kompilieren!



  • Thes-One schrieb:

    Kann mir zufällig einer erklären was diese Fehlermeldung zu sagen hat???
    Bekomme Sie immer beim Kompilieren!

    beim Kompilieren wohl kaum, eher beim linken. Und ich kann nicht sagen, was das zu bedeuten hat, außer dass der Exit Status von ld 1 ist, was auf ein Fehler hindeutet (z.B. fehlende Bibliothek). Leider ist meine Glaskugel bei der Werkstatt und kann nicht herausfinden, welchen Kompiler und Linker du benutzt.



  • Das ist mein erstes Programm mit mehr als einer Datei!
    Ich nutze den gcc Compiler unter Linux!
    Linker: Da hab ich keine ahnung!

    Wie finde ich das raus??
    oder
    Welchen brauch man??



  • Der Linker kommt mit dem Kompiler zusammen. Er ist dafür verantwortlich aus den Objekt Dateien, die der Compiler erzeugt, eine lauffähige Binary zu erstellen.

    Um welchen Zusammenhang kommt bei dir diese Fehlermeldung? Ein bisschen mehr Code solltest du uns schon verraten.



  • Also ich erhalte diese Fehlermeldung!

    /tmp/cc006hTs.o: In function `CheckSyntax':
    fehler.c:(.text+0x0): multiple definition of `CheckSyntax'
    /tmp/ccaTwLBH.o:ueb03.c:(.text+0x0): first defined here
    collect2: ld gab 1 als Ende-Status zurück
    

    Ich habe 5 Dateien!
    3 *.c Dateien (fehler.c , programm.c und berechnung.c)
    2 *.h Dateien (fehler.h und berechnung.h)

    Ich habe in der programm.c(enthält main)..

    #include "fehler.c"
    

    in der fehler.c...

    #include "fehler.h"
    

    Ich rufe dann eine Funktion(CheckSyntax)aus fehler.c in der main in programm.c auf!

    Ich weiß garnicht ob das so richtig ist!
    Arbeite wie gesagt das erste mal mit mehreren Dateien!

    Ach ja den Compiler ruf ich so auf --> (Linux) Konsole

    gcc -mfpmath=387 -ansi -pedantic -Wall -Wextra -Werror -o programm programm.c berechnung.c fehler.c -lm



  • #include "fehler.c" durch #include "fehler.h" ersetzen 😉



  • Dann kennt er die Funktion aus fehler.c nicht mehr!
    Ist ja auch logisch!

    Implizite Deklaration der Funktion »CheckSyntax«
    


  • Hast du denn in der "fehler.h" einen Prototyp der Funktion untergebracht?



  • du könntest auch die einzelnen dateien kompilieren (ich weiß jetz nicht, ob du gcc von hand auf rufst oder über ne ide etc) und dann halt die einzelnen *.o dateien beim kompilieren zum linken mit angeben, dann musste nur die *.h dateien inkludieren und es läuft


Anmelden zum Antworten