Cześć,
Bawię się C++ w Eclipsie + Atmel toolchain i natrafiłem na pewien problem gdy chciałem użyć liczb zmiennoprzecinkowych mając podpiętą bibliotekę z arduino WString
Kod:
avr-g++ -Wl,-Map,Encoder.map,--cref -mrelax -Wl,--gc-sections -lc -lm -lc -mmcu=atmega644p -o "Encoder.elf" ./LCD_HD44780/Print.o ./LCD_HD44780/WString.o ./LCD_HD44780/lcd_hd44780.o ./main.o
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(cmpsf2.o):/data2/home/toolsbuild/jenkins-knuth/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/cmpsf2.S:58: multiple definition of `__ltsf2'
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_lt_sf.o):/data2/home/toolsbuild/jenkins-knuth/workspace/avr8-gnu-toolchain/src/gcc/libgcc/fp-bit.c:1269: first defined here
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(cmpsf2.o):/data2/home/toolsbuild/jenkins-knuth/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/cmpsf2.S:58: multiple definition of `__lesf2'
c:/program files (x86)/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_le_sf.o):/data2/home/toolsbuild/jenkins-knuth/workspace/avr8-gnu-toolchain/src/gcc/libgcc/fp-bit.c:1290: first defined here
collect2.exe: error: ld returned 1 exit status
make: *** [Encoder.elf] Błąd 1
struktura projektu jak widać jest prosta
Plik main
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Klasa Print zredukowana:
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
kompilator nie rzuca błędem, gdy wywalę
#include "WString.h"
i wykluczę z projektu. Nie jestem w stanie sobie z tym poradzić, próbowałem do linkera dodać -l libm, jednak dostaje info, że nie odnaleziono.
Może ktoś z was już walczył z tym wcześniej?