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?
|