Hallo Ich versuche gerade die Fkt. atol() funktion zu verwenden. Dafür habe ich die stdlib eingebunden. #include <stdlib.h> #include <string.h> #include "stm32f0xx_hal.h" Error: L6218E: Undefined symbol atol (referred from tim2.o). Ich befürchte, dass irgend eine Einstellung in Keil v5 fehlt. Unter Options for Target oder in File Extensions nicht finden. Kann es sein, dass es irgendwo versteckt ist?
Mark schrieb: > Dafür habe ich die stdlib eingebunden. Du hast nur die Headerdatei eingebunden. Du muss schon auch die passende Library angeben, das geschieht bei den Linkeroptionen. Libraries heißen bei Deinem Compiler vermutlich *.a (oder *.lib). Welche Library in Frage kommt, wirst Du der Dokumentation Deines Compilers entnehmen müssen, dort sollten die verschiedenen mitgelieferten Varianten beschrieben sein.
Rufus Τ. F. schrieb: > Mark schrieb: >> Dafür habe ich die stdlib eingebunden. > > Du hast nur die Headerdatei eingebunden. > > Du muss schon auch die passende Library angeben, das geschieht bei den > Linkeroptionen. Libraries heißen bei Deinem Compiler vermutlich *.a > (oder *.lib). > > Welche Library in Frage kommt, wirst Du der Dokumentation Deines > Compilers entnehmen müssen, dort sollten die verschiedenen > mitgelieferten Varianten beschrieben sein. Danke, ich habe in den Optionen nachgesehen. Ich hatte den ARM Compiler mit default Einstellung als Compiler. Nun habe ich den V5.06 update 4 eingestellt, V6.6 funktioniert nämlich irgendwie nicht. Bei den Linkeroptionen kann ich irgendwie nichts angeben bezüglich der Library.
Mark schrieb: > Rufus Τ. F. schrieb: >> Mark schrieb: >>> Dafür habe ich die stdlib eingebunden. > > Danke, ich habe in den Optionen nachgesehen. > Ich hatte den ARM Compiler mit default Einstellung als Compiler. > Nun habe ich den V5.06 update 4 eingestellt, V6.6 funktioniert nämlich > irgendwie nicht. > Bei den Linkeroptionen kann ich irgendwie nichts angeben bezüglich der > Library. Hier noch die Bilder dazu, entschuldige mich.
Was steht in der Dokumentation zu "Use Microlib"? Das ist bei Dir aktiviert ...
Rufus Τ. F. schrieb: > Was steht in der Dokumentation zu "Use Microlib"? Das ist bei Dir > aktiviert ... Rufus, entschuldige mich für meine dummen Fragen. Was meinst du mit Dokumentation. Wie kann ich da nachsehen, was darin steht? Ich konnte nur das hier finden. http://www.keil.com/arm/microlib.asp Wenn ich auf den Link weiter unten klicke, kommt bei mir leider eine Error Meldung.
Mark schrieb: > Was meinst du mit Dokumentation. Vermutlich meint er dass wenn die Microlib selektiert ist, du eben nicht die stdlib eingebunden bekommst. Das "Häkchen" setzen oder nicht musst du in deiner Entwicklungsumgebung.
Erklehr Behr schrieb: > Mark schrieb: >> Was meinst du mit Dokumentation. > > Vermutlich meint er dass wenn die Microlib selektiert > ist, du eben nicht die stdlib eingebunden bekommst. > > Das "Häkchen" setzen oder nicht musst du in deiner > Entwicklungsumgebung. Ich versuche es mal und mache das Häkchen weg.
Mark schrieb: > Rufus Τ. F. schrieb: >> Was steht in der Dokumentation zu "Use Microlib"? Das ist bei Dir >> aktiviert ... > > Rufus, entschuldige mich für meine dummen Fragen. > Was meinst du mit Dokumentation. > Wie kann ich da nachsehen, was darin steht? Ich bin zwar nicht Rufus, aber ich vermute, ihm geht es ähnlich wie mir: Er kennt den Keil-Compiler nicht, weiß aber generell, wie ein Compile-Link-Zyklus abläuft: Von https://www.cprogramming.com/compilingandlinking.html Linking refers to the creation of a single executable file from multiple object files. In this step, it is common that the linker will complain about undefined functions (commonly, main itself). During compilation, if the compiler could not find the definition for a particular function, it would just assume that the function was defined in another file. If this isn't the case, there's no way the compiler would know -- it doesn't look at the contents of more than one file at a time. The linker, on the other hand, may look at multiple files and try to find references for the functions that weren't mentioned. Daher wundert er sich, dass in deinen Screenshots (anscheinend) keine Linker-Optionen eingestellt werden und das einzige, was halbwegs danach aussieht, als könnte es etwas beeinflussen (aber nicht eindeutig) ist eben die Option "Use Microlib". Und dann geht er davon aus, dass du den Keil-Compiler und die Entwicklungsumgebung nicht ganz ohne Dokumentation bekommen hast und daher dort nachsehen kannst, was dieser Schalter tut. MfG, Arno P.S: Und nächstes Mal bitte den Screenshot nicht im bmp-Format posten, sondern etwas auswählen, was die Dateigröße sinnvoll reduziert. Siehe Bildformate.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
