gcc Linker macht mich verrückt

Gast #5110824
Lesenswert?
• ▲
▼
Ich habe ein mbed Projekt, das lässt sich mit 'mbed compile' übersetzen 
und linken. Das gleiche Projekt habe ich nach MCUXpresso (Nachfolger von 
LPCXpresso, Eclipse IDE) exportiert und benutze da die gleiche 
Toolchain, nur in mbed ist gcc Version 6 drin und in MCUX noch Version 
5.4.1.
In MCUX bekomme ich nun Linkerfehler, einige Wrapperfunktionen werden 
nicht gefunden. Diese sind aber im Objektfile mbed_retarget.o vorhanden.
Das Problem konnte ich jetzt einkreisen und auch beheben, verstehe aber 
noch nicht ganz warum. In der angehängten Textdatei habe ich die 
Linkerflags und inputs reingeschrieben, mit CR getrennt damit es besser 
lesbar ist. Die Flags sind gleich, bis auf die Reihenfolge und das ist 
das Problem. Im mbed build system kommen die Flags an das Ende und damit 
geht es, wenn ich das in MCUX auch mache ist es ebenfalls ok, default 
ist aber das die Flags vor die Inputfiles gesetzt werden. Ist es normal 
das der gcc Linker hier so zickig ist?
In der IDE kann ich das 'Command line pattern' für den Linker setzen, so 
ist es ok:
${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${FLAGS}
und so der default der in diesem Fall nicht funktioniert:
${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}
Angehängte Dateien:
Gast #5110864
Lesenswert?
• ▲
▼
Danke,
nach der oben beschriebenen Änderung der Aufrufzeile sieht das dann so 
aus und linkt auch ohne Fehler:
1
arm-none-eabi-c++ 
2
-o "mbed-classic-program.axf"  
3
./src/main.o  
4
...viele Objektfiles
5
-lmbed -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys 
6
-L"C:/Users/sn.DCIMS/Documents/MCUXpressoIDE_10.0.2_411/workspace/mbed-classic-program/mbed/fd96258d940d/TARGET_LPC11U37H_401/TOOLCHAIN_GCC_ARM" 
7
-DMBED_DEBUG -DMBED_TRAP_ERRORS_ENABLED=1 -DMBED_RTOS_SINGLE_THREAD 
8
--specs=nano.specs -Wl,-n   
9
-Wl,--start-group -lmbed -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys -Wl,--end-group 
10
-Xlinker -Map="mbed-classic-program.map" 
11
-Xlinker -print-memory-usage 
12
-Xlinker --gc-sections 
13
-Xlinker --wrap=main 
14
-Xlinker --wrap=_malloc_r 
15
-Xlinker --wrap=_free_r 
16
-Xlinker --wrap=_realloc_r 
17
-Xlinker --wrap=_memalign_r 
18
-Xlinker --wrap=_calloc_r 
19
-Xlinker --wrap=exit 
20
-Xlinker --wrap=atexit 
21
-mcpu=cortex-m0 -mthumb 
22
-T LPC11U37.ld

Diese Reihenfolge ist dann ok oder hat das wieder andere Seiteneffekte?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.