Library in Linker einbinden: Fehler not found

Gast #5710987
Lesenswert?

Ich bin wieder mal am rätseln.

Ich möchte vom CMSIS die Funktionen für FOC nutzen (Park, Clark etc)
Die Funktionen sind in der arm_math.h deklariert, die CubeMX beim 
Anlegen des Projektes auch im Projektordner ablegt. Die genutzte Library 
wird aber nicht automatisch angezogen. Ich habe versucht, sie wie hier 
beschrieben einzubinden, das gibt aber immer eine Fehlermeldung vom 
Linker.

https://mcuoneclipse.com/2013/02/14/tutorial-using-the-arm-cmsis-library/

1
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -mfloat-abi=soft -L"C:\CMSIS_5-develop\CMSIS_5-develop\CMSIS\/Lib/ARM" -specs=nosys.specs -specs=nano.specs -T"../STM32F103C6Tx_FLASH.ld" -Wl,-Map=output.map -Wl,--gc-sections -o "LishuiFOC_01.elf" @"objects.list"  -larm_cortexM3l_math -lm
2
c:/gnu_arm/eclipse/plugins/fr.ac6.mcu.externaltools.arm-none.win32_1.16.0.201807130628/tools/compiler/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -larm_cortexM3l_math
3
collect2.exe: error: ld returned 1 exit status

Mit der Pfad-Syntax hab ich schon rumgespielt, selbst wenn ich die 
Library direkt ins Projektverzeichnis lege, gibt es den Fehler. :-(

Wie mache ich das richtig?!

Gruß
hochsitzcola
#5711002
Lesenswert?

Ich nehme an, daß du dich auf Atollic oder die STM32-Workbench beziehst.

Du darfst die Library da nicht als external Library einbinden, da der 
Linker dann einen Namen erwartet, der mit "lib" beginnt.

Stattdessen fügst du die Library unter Properties->C/C++ 
Build->Settings/C Linker->Micelaneos hinzu. (siehe Anhang)
Angehängte Dateien:
#5711049
Lesenswert?

Oliver S. schrieb:
> Wo du das hinschreibst, ist völlig egal. Der Linker erwartet hinter der
> Option -l immer eine lib, die mit „lib“ beginnt.
>
> Da die fraglichen libs das allerdings auch alle tun, macht das nix.
>
> Das Problem wird, wie oben schon geschrieben wurde, der kaputte Pfad
> sein.
>
> Oliver

Nö!
Das ist nicht bei allen Libs so, und es ist auch nicht egal.
Auf dem oben beschriebenen Weg kannst du Object-Files beliebigen Namens 
einfügen.
Auch die, deren Namen nicht mit lib beginnen, und das ist bei den von ST 
gelieferten 3rd-Party-Libs eher die Regel als die Ausnahme.
Gast #5711080
Lesenswert?

Danke schon mal für die Tipps, leider hilft mir keiner weiter. Ja, ich 
nutze die STM32 Workbench unter Eclipse. Ich habe jetzt die Library im 
GCC-Ordner verwiesen und den Pfad dahin absolut angegeben, die Lib fängt 
auch mit lib... an.

Das Ergebnis ist aber das selbe :-(
1
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -mfloat-abi=soft -L"C:\CMSIS_5-develop\CMSIS_5-develop\CMSIS\Lib\GCC" -specs=nosys.specs -specs=nano.specs -T"../STM32F103C6Tx_FLASH.ld" -Wl,-Map=output.map -Wl,--gc-sections -o "LishuiFOC_01.elf" @"objects.list"  -llibarm_cortexM3l_math -lm
2
c:/gnu_arm/eclipse/plugins/fr.ac6.mcu.externaltools.arm-none.win32_1.16.0.201807130628/tools/compiler/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -llibarm_cortexM3l_math
3
collect2.exe: error: ld returned 1 exit status

Wie wäre denn die Syntax in dem miscellaneous Bereich

Gruß
hochsitzcola

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