C Handbuch bestellen

Leserfragen und FAQ für C

Compiler Fehler MinGW sagt "undefined reference to"

Gefragt am 16.12.2010 von Thomas Vollmar

Hallo,

ich habe versucht, das Hello-World-Projekt nachzuvollziehen.

Beim Compilieren kommen bei mir aber stets Linker-Fehler:

Führt  make... aus
make.exe -f \"C:\\Daten\\c_DEV\\HelloWorld\\Makefile.win\" all
gcc.exe -c main.c -o main.o -I\"C:/Dev-Cpp/include\"  

gcc.exe main.o  -o \"HelloWorld.exe\" -L\"C:/Dev-Cpp/lib\"  

/mingw/lib/crt2.o(.text+0x28):crt1.c: undefined reference to`__dyn_tls_init_callback\'
/mingw/lib/crt2.o(.text+0x5c):crt1.c: undefined reference to `__cpu_features_init\'
collect2: ld returned 1 exit status

make.exe: *** [HelloWorld.exe] Error 1

Ausführung beendet


Wo kann ich das suchen?
Ich habe die diversen Versionen des Dev-C++ schon asprobiert, der Fehler verläßt
mich nicht.

Herzlichen Dank!

Antwort

Hallo Thomas,

hast du den Befehl manuell in der Eingabeaufforderung eingegeben?

Falls ja stimmt die Reihenfolge evtl. nicht:

gcc.exe main.o  -o \"HelloWorld.exe\" -L\"C:/Dev-Cpp/lib\"

besser:

gcc.exe -o \"HelloWorld.exe\" main.o  -L\"C:/Dev-Cpp/lib\"

Mehr dazu auch hier:

http://www.mingw.org/wiki/The_linker_consistently_giving_undefined_references

Viele Grüße

Frage 2 zu MinGW Compiler Fehler "undefined reference to"

 

Hallo Elias(ich bleibe mal beim "Du"),


das Makefile kam vom Compiler. Das Problem scheint etwas anderes gewesen zu sein.

Der Compiler meckerte immer zwei Funktionen o.Ä. an und bezog sich auf Dateien crtx.o. Ich hatte noch einen anderen Rechner mit Windows 7, der wegen diverser Versuche, eine USB-Platine "Octopus" zum spielen zu bringen komplett neu installiert werden mußte. Auf den habe ich dann gestern abend den Dev-Compiler installiert und siehe da, es geht wunderbar. Daraufhin habe ich mich um die Unterschiede der Rechner gekümmert und das mit Bezug auf diese Objekt-Dateien. Der Unterschied war der, dass auf dem ersten Rechner MinGw als Solches schon installiert war. Nun vermute ich, dass der
Compiler die crt-Dateien von dort nahm, statt von Dev-C++. Sie waren sowohl hier, als auch da vorhanden. Die von MinGW aber fünf Jahre jünger. Nun habe ich MinGW deinstalliert und es ging nicht. Auch im Suchpfad tauchte MinGW nicht mehr auf. Ich mußte den kompletten Pfad C:\MinGW runterschmeißen, dann das "Hello World"-Projekt komplett löschen und dann ging es auch auf dem
ersten Rechner.

Herzlichen Dank für den Versuch zu helfen. Da ich mit C-Programmierung auf dem PC noch nichts zu tun hatte(bisher nur auf Controllern), dürfte ich noch öfter in die Situation kommen, Fragen stellen zu wollen. Könnt ich mich denn dann vielleicht nochmal an Dich wenden?

Herzliche Grüße

Thomas Vollmar

Antwort

Hallo Thomas,

ja wir können gerne beim "Du" bleiben.

Wenn auf dem Rechner schon eine ältere Version von MinGW drauf war, wundert es mich nicht, dass es Probleme mit DevCpp gibt, welches auch einen MinGW mitbringt. Ich glaube DevCpp kann man auch ohne MinGW runterladen werden, aber die Hauptsache ist ja jetzt dass es geht.

Wenn ich in Zukunft noch helfen kann, gerne, dafür bin ich da :)

Viele Grüße

Elias