www.mikrocontroller.net

Forum: Compiler & IDEs Probleme mit strtod() bzw. atof()


Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hat irgendjemand Erfahrung mit der Funktion "strtod()" ?
wenn ich die Funktion in mein Programm einbaue erhalte ich eine 
Linkerfehler, daß irgendetwas doppel definiert ist.
Die Funktion atof() kommt zum gleichen Ergebnis.

Gruß
Bernd

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Compiler und dessen Version dürfen wir erraten?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd wrote:
> Hallo,
> hat irgendjemand Erfahrung mit der Funktion "strtod()" ?
> wenn ich die Funktion in mein Programm einbaue erhalte ich eine
> Linkerfehler, daß irgendetwas doppel definiert ist.
> Die Funktion atof() kommt zum gleichen Ergebnis.

Ist doch ganz einfach. Nimm eine Definition von irgendwas raus und es 
sollte gehen.

Anruf in der Werkstatt: Mein Auto benimmt sich so seltsam! Was könnte 
das sein?

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tschuldigung
AVR Studio 4.15 Build 623
AinAVR 20081205

Gruß
Bernd

Autor: brizz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne nähere Infos siehe hier: 
http://www.google.de/cse?cx=partner-pub-1202612203...

Ansonsten wollen dir A. K. und karl heinz Buchegger sagen, dass ohne
ausführliche Frage keine sinnvolle Antwort kommen kann. Dinge die in
deiner Fragen vermutlich fehlen sind:
-Komplette (und kopierte Fehlermeldung).
-Der Code selbst (am besten ein Minimalbeispiel und mit Code-Tags).
-Der Compiler, am besten mit Version. Wobei wir hier im *GCC*-Forum wohl
 mit dem GCC rechnen dürfen. ;-)

Grundsätzlich bietet sich bei den meisten (und speziell auch bei dieser)
Frage die Forensuche an, wenn ich mich recht erinnere, gab es auch in
der letzten Zeit mehrere Fragen zu strtod().

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
laut SourceForge.net, von wo ich WinAVR geladen habe, heiß es:

> WinAVR (tm) is a suite of executable, open source software development
> tools for the Atmel AVR series of RISC microprocessors hosted on the
> Windows platform. Includes the GNU GCC compiler for C and C++"
Ausserdem ist in der Forumsliste unter GCC auch "WinAVR" aufgelistet.

daher bin ich eigentlich der Meinung hier richtig zu sein.

der Code ist:  char    editPuffer[20];
               double  wert;
               ...
               wert = strtod(editPuffer + 1, NULL);

Als Fehlermeldung erhalte ich:
e:/programme/atmel/avr 
tools/winavr-20081205/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr51 
\libc.a(cmpsf2.o):  In function `__lesf2':
(.text.fplib+0x0): multiple definition of `__ltsf2'
e:/programme/atmel/avr 
tools/winavr-20081205/bin/../lib/gcc/avr/4.3.2/avr51\libgcc.a(_lt_sf.o): 
(.text+0x0):  first defined here
make: *** [TC_Uhr.elf] Error 1

Die Meldung kommt erst beim linken.

Gruß
Bernd

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie steht es um -lm (libm) ?

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit der Linker Option -lm steht auch in der Library Reference von 
Atmel.
Funktioniert aber nicht.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd wrote:

> Funktioniert aber nicht.

Meine Glaskugel meint, dass du sie nicht ans Ende der Kommandozeile
geschrieben hast.  Damit wird sie effektiv ignoriert (weil zu dem
Zeitpunkt, da sie auf der Kommandozeile steht, der Linker daraus
noch nichts entnehmen kann).

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In die Sprache vom Studio übersetzt: Nicht in die Linker-Optionen das 
-lm reinschreiben, sondern in die Liste der Libs.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.