Codesourcery Fehlermeldung (hosted/unhosted)

Gast #2676975
Lesenswert?

Hallo,
ich hoffe mir kann jemand bei folgender Fehlermeldung weiterhelfen
1
C:\Program Files (x86)/CodeSourcery/Sourcery G++ Lite/arm-none-eabi/lib/thumb2\libc.a(lib_a-abort.o): In function `abort':
2
abort.c:(.text+0xa): undefined reference to `_exit'
3
C:\Program Files (x86)/CodeSourcery/Sourcery G++ Lite/arm-none-eabi/lib/thumb2\libc.a(lib_a-signalr.o): In function `_kill_r':
4
signalr.c:(.text+0x18): undefined reference to `_kill'
5
C:\Program Files (x86)/CodeSourcery/Sourcery G++ Lite/arm-none-eabi/lib/thumb2\libc.a(lib_a-signalr.o): In function `_getpid_r':
6
signalr.c:(.text+0x0): undefined reference to `_getpid'
7
C:\Program Files (x86)/CodeSourcery/Sourcery G++ Lite/arm-none-eabi/lib/thumb2\libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
8
sbrkr.c:(.text+0x12): undefined reference to `_sbrk'
9
collect2: ld returned 1 exit status

Laut google 
(http://communities.mentor.com/community/cs/archives/arm-gnu/msg01761.html) 
und zugehöriges getting started guide 
(http://www.google.de/url?sa=t&rct=j&q=codesourcery%20getting%20started%20guide&source=web&cd=2&sqi=2&ved=0CGMQFjAB&url=http%3A%2F%2Fwiesel.ece.utah.edu%2Fredmine%2Fattachments%2Fdownload%2F106&ei=e0GyT_-mO5CRswaM4eSuBg&usg=AFQjCNGGsuT9JYXVBTidzRt4AH4qT1av4g&cad=rja) 
handelt es sich um ein Codesourcery Feature zum debuggen. Ich nutze 
dieses Feature allerdings nicht, zumindest nicht wissentlich. Ich wollte 
eigentlich nur ein IAR Projekt in Eclipse mit ARM Toolchain + 
Codesourcery portieren.
Kennt jemand die Meldung und weis wie man das Problem behebt? Hab ich 
irgendwelche Infos vergessen zu posten?

Viele Grüße,
Chris
Gast #2677076
Lesenswert?

Jim Meba schrieb:
> Schau Dir Deine Linker Settings mal an.
> Bei mir half: -lc -lm -lcs3unhosted -lgcc
> Die entsprechenden Funktionen sind dann als Dummy verfügbar.

Hab ich bereits drin:
Invoking: ARM Sourcery Windows GCC C++ Linker
arm-none-eabi-g++ 
-T"C:\Users\csander\AppData\Roaming\energymicro\Device\EnergyMicro\EFM32 
GG\Source\G++\efm32gg.ld"  -Xlinker --gc-sections -L"C:\Program Files 
(x86)/CodeSourcery/Sourcery G++ Lite/arm-none-eabi/lib/thumb2" 
-L"C:\Program Files (x86)/CodeSourcery/Sourcery G++ 
Lite/lib/gcc/arm-none-eabi/4.4.1/thumb2" -Wl,-Map,mandel.map 
--no-wchar-size-warning -mcpu=cortex-m3 -mthumb -DNDEBUG -o "mandel.elf" 
./emlib/src/em_assert.o ./emlib/src/em_cmu.o ./emlib/src/em_dbg.o 
./emlib/src/em_ebi.o ./emlib/src/em_emu.o ./emlib/src/em_gpio.o 
./emlib/src/em_rmu.o ./emlib/src/em_system.o ./emlib/src/em_usart.o 
./drivers/graphics/dmd/ssd2119/dmd_ssd2119_direct.o 
./drivers/tftdirect.o ./drivers/tftspi.o  ./bsp/dvk.o ./bsp/dvk_ebi.o 
./bsp/dvk_spi.o ./bsp/trace.o  ./EFM32GG/Source/G++/startup_efm32gg.o 
./EFM32GG/Source/system_efm32gg.o  ./mandel.o   -lc -lm -lcs3unhosted 
-lgcc -lcs3

netseal schrieb:
> Hallo,
>
> was ist denn das für eine Toolchain?
> Soll ein embedded Project compiliert werden? Evtl mit der newlib?
>
> Ist es ein CrossCompiler? Kannst du mal die Makefile posten?

Das Projekt existiert als Makefile-Projekt und normales C++ Projekt, bei 
beiden kommt die gleiche Error Meldung. Ich hab das Makefile des 
Makefile-Projekts mal angehängt, da es besser lesbar ist als der dreck 
vom normalen C++ Projekt.

Da ich meinem Projekt einige C++ Files hinzufügen will habe ich mein 
main file (mandel.c) in mandel.cpp umbenannt. Seitdem spuckt der Linker 
die Fehlermeldungen aus.
Angehängte Dateien:
Gast #2677129
Lesenswert?

ein Thread der sich anscheinend mit dem gleichen Problem beschäfftigt: 
http://embdev.net/topic/129607

Resultat dieses Threat: "mach einfach Function stubs hin, dann meckert 
der Linker nichtmehr". Wenn ich das mache, verschwinden die 
Fehlermeldungen und das Programm läuft auch auf dem Controller. Ich 
würde allerdings gern Verstehn wo der Fehler her kommt und wie man ihn 
sinnvoll behebt.
Gast #2677180
Lesenswert?

ich werd mal schaun, der code stammt leider nicht von mir daher kann ich 
aus der stehgreif dazu nix sagen, aber ich werds mir anschaun. Aber wie 
kann es sein das der Fehler nicht kommt wennn ich nur .c dateien 
compiliere/linke und nur durch das umbenennen des mainfiles in .cpp + 
Anpassung des makefiles, kommt plötzlich diese Fehlermeldung. Sind sich 
c und cpp compiler so unterschiedlich was newlib angeht?
Gast #2677198
Lesenswert?

A. K. schrieb:
> TOOOHMAAATOOOH schrieb:
>
>> c und cpp compiler so unterschiedlich was newlib angeht?
>
> In C++ hast du leicht new/delete an der Backe, weil u.U. implizit
> irgendwo im Umfeld von Konstruktoren vergraben. Und auch das exception
> handling, wenn nicht explizit abgeschaltet.

ich hab meine cpp libs/files ja noch garnicht dem projekt hinzugefügt, 
nur eine c-datei, welche ausschließlich C-Code, also keine klassen, 
beinhaltet, umbenannt in .cpp.
Wenn ich einige der cpp Files dem Makefile als source hinzufüge (welche 
unter IAR wunderbar compilieren), dann kommen noch mehr dieser 
Fehlermeldungen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren