Library in Linker einbinden: Fehler not found

Gast #5710987
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
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:
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
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
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
hochsitzcola schrieb:
> Wie wäre denn die Syntax in dem miscellaneous Bereich

Genau wie bei allen anderen Pfaden.
Nur eben, daß der Name der Object-Datei hier egal ist und nicht mit lib 
beginnen muß.
Du kannst die Datei doch einfach auswählen (duch anklicken) und dabei 
zwischen Datei im Workspace oder im Filesystem wählen.
Gast
nö, diese Buttons gibt es bei miscellaneous nicht, da kann man nur von 
Hand eintragen. Aber es geht jetzt ja über die Library Einträge.

Gruß
hochsitzcola

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.