Seite 1 von 1

Linker Fehler: relocation <x> has invalid symbol index

Verfasst: Sa Okt 29, 2011 9:45 am
von Xin
Mal abgesehen von der fehlenden Referenz zu main... kann jemand die "has invalid symbol index"-Meldungen auf eine Ursache zurückführen?

Code: Alles auswählen

xin@trinity:/virt/home/xin/workspace/gsys/trunk/apps/gsys$ make
LINK| (./bin/gc).....                                                                                                                                                                                                                                                          
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 0 has invalid symbol index 11                                                                                                                                                                              
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 1 has invalid symbol index 12                                                                                                                                                                              
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 2 has invalid symbol index 2                                                                                                                                                                               
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 3 has invalid symbol index 2                                                                                                                                                                               
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 4 has invalid symbol index 11                                                                                                                                                                              
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 5 has invalid symbol index 13                                                                                                                                                                              
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 6 has invalid symbol index 13                                                                                                                                                                              
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 7 has invalid symbol index 13                                                                                                                                                                              
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 8 has invalid symbol index 2                                                                                                                                                                               
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 9 has invalid symbol index 2                                                                                                                                                                               
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 10 has invalid symbol index 12                                                                                                                                                                             
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 11 has invalid symbol index 13                                                                                                                                                                             
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 12 has invalid symbol index 13                                                                                                                                                                             
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 13 has invalid symbol index 13                                                                                                                                                                             
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 14 has invalid symbol index 13                                                                                                                                                                             
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 15 has invalid symbol index 13                                                                                                                                                                             
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 16 has invalid symbol index 13                                                                                                                                                                             
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 17 has invalid symbol index 13                                                                                                                                                                             
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 18 has invalid symbol index 13                                                                                                                                                                             
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 19 has invalid symbol index 13                                                                                                                                                                             
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 20 has invalid symbol index 20                                                                                                                                                                             
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
make: *** [link] Fehler 1
Die Antwort auf die Frage 'Was hast Du eigentlich gemacht, dass es dazu kam' lautet: Ich habe die kompletten Makefiles neu geschrieben. Es gibt generische Makefiles, die bei den anderen Projekten auch wunderbar funktionieren. Nur hier stehe ich gerade etwas auf'm Schlauch. Die neuen Makefiles gibt's jetzt auch schon was länger... ich kann also nicht 'mal eben' sagen, was sich zwischen "altes Makefile hat funktioniert" und "neues Makefile tut's nicht mehr" alles verändert hat. In Kurzfassung könnte man vielleicht 'Alles' sagen - nur dass ich die neuen Makefiles natürlich benutzen und den alten Krampf loswerden will. ^^

Re: Linker Fehler: relocation <x> has invalid symbol index

Verfasst: Sa Okt 29, 2011 10:49 am
von Kerli
Was ich jetzt so gesehen habe kann das alles kommen wenn main fehlt...

Re: Linker Fehler: relocation <x> has invalid symbol index

Verfasst: Sa Okt 29, 2011 11:54 am
von fat-lobyte
Kerli hat geschrieben:Was ich jetzt so gesehen habe kann das alles kommen wenn main fehlt...
Tatsächlich?

Hast du vielleicht irgendwas an Shared/Static optionen gedreht? z.B. -fPIC angegeben? Wie tut das mit oder ohne Debug-Info: "-g"?

Ganz blöde frage: hast du, nachdem du die Makefiles umgeschrieben hast tatsächlich alles ge"clean"t? Man sollte alle erstellten Objektdateien löschen und neu bauen.

Ansonsten keine Ahnung, leider.

Re: Linker Fehler: relocation <x> has invalid symbol index

Verfasst: Mo Okt 31, 2011 7:07 pm
von Xin
Kerli hat geschrieben:Was ich jetzt so gesehen habe kann das alles kommen wenn main fehlt...
Kannst Du mir ungefähr sagen, was mir der Linker mit diesen Meldungen mitteilen möchte?

Ich habe es noch nicht ausprobiert - ich werde es gleich zu Hause mal probieren.

EDIT: Treffer.
Trotzdem verstehe ich nicht, wieso die hier eine invalide Tabelle auftaucht.


Das Genesys-Makefile ist größer und aufwändiger als alle anderen. Da waren noch mehr Fehler drin, aber ich habe wieder ein aktuelles Executable :-)
fat-lobyte hat geschrieben:Hast du vielleicht irgendwas an Shared/Static optionen gedreht? z.B. -fPIC angegeben? Wie tut das mit oder ohne Debug-Info: "-g"?
-fPIC sollte nicht gesetzt sein, ich habe das Makefile allerdings gerade nicht vor der Name. Ich habe aber in Erinnerung, dass ich -fPIC mal für gtk benötigt habe.
Genesys benutzt aber keine Klassen (Objekt-Files) aus der GTK-Ecke... (soweit ich weiß...)
fat-lobyte hat geschrieben:Ganz blöde frage: hast du, nachdem du die Makefiles umgeschrieben hast tatsächlich alles ge"clean"t? Man sollte alle erstellten Objektdateien löschen und neu bauen.
Hehehe, sogar zwischenzeitlich das OS neu installiert. ;-)

Die Makefiles habe ich im Mai? umgeschrieben. Seit Mai hatte ich aber keine Zeit mehr an Genesys weiter zu arbeiten. Ich stehe aber in den Startlöchern für meinen Urlaub und ich verreise nicht, was bedeutet, dass ich viel Zeit habe, mich in Sachen Webservice und dynamischer Webseiten auszutoben... B-)
Also muss das Makefile langsam mal wieder an den Start. ^^

Re: Linker Fehler: relocation <x> has invalid symbol index

Verfasst: Mo Okt 31, 2011 11:37 pm
von Kerli
Xin hat geschrieben:Kannst Du mir ungefähr sagen, was mir der Linker mit diesen Meldungen mitteilen möchte?
Ich hab das meistens in dem Zusammenhang gelesen, dass man nur Objekt-Dateien linken möchte aber nicht -c angibt um ein Linken zu verhindern, da dieses ja erst im finalen Schritt (inkl. Datei mit main) erfolgen soll.

http://stackoverflow.com/questions/5528 ... le-problem
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563481
http://mihirknows.blogspot.com/2011/10/ ... valid.html

Re: Linker Fehler: relocation <x> has invalid symbol index

Verfasst: Di Nov 01, 2011 10:19 am
von Xin
Gut, Ursache bekannt, die Fehlerbeschreibung weist allerdings nicht auf die Ursache hin.
Der Compiler kompiliert wieder und dunkel erinnere ich mich an den Fehler mit dem ich zuletzt zu tun hatte und der sich mir nun wieder präsentiert. ^^

Die fehlende Main-Funktion war kein ernstzunehmendes Problem, also wollte ich zuerst das "echte" Problem aus der Welt räumen... machen wir demnäxt auch anders ;-D

Danke für die Links, ich hatte selbst auch mal gegoogelt, aber damals nix brauchbares gefunden und so die Tage einfach die Frage hier rein gestellt. Funktioniert ja :-)

Re: Linker Fehler: relocation <x> has invalid symbol index

Verfasst: Di Nov 01, 2011 4:12 pm
von Kerli
Ja, Fehlerbeschreibungen sind leider nicht immer unbedingt sehr hilfreich. Zwar nicht falsch, aber auch nicht hilfreich ^^
Xin hat geschrieben:Funktioniert ja :-)
http://www.lmgtfy.com/?q=%2Fusr%2Flib%2 ... l+index+11
:P

Re: Linker Fehler: relocation <x> has invalid symbol index

Verfasst: Di Nov 01, 2011 5:58 pm
von Xin
Kerli hat geschrieben:
Xin hat geschrieben:Funktioniert ja :-)
http://www.lmgtfy.com/?q=%2Fusr%2Flib%2 ... l+index+11
:P
:-P

Keine Ahnung... ist inzwischen gut ein halbes Jahr her, ich hatte damals nichts passables gefunden und einfach die Meldung reinkopiert, weil ich da wieder ran wollte.