Forum: Mikrocontroller und Digitale Elektronik math.h einbinden


von Marcel (Gast)


Lesenswert?

Hallo zusammen, ich habe ein kleines Programm geschrieben, welches erst 
funktionsfähig war und dann (mit dem einbinden von math.h und dem 
aufrufen der Funktion dazu) nicht mehr auf den controller gebrannt 
werden konnte.
der bringt dann eine error meldung:

ld returned 1 exit status  collect2.exe

vielleicht hilft auch die ausführliche variante weiter :/. Hab diesen 
fehlercode auch schon im internet gefunden aber mit der lösung nichts 
anfangen können. tut mir jetzt schon leid für das nicht vorhandene 
wissen :(.
1
------ Build started: Project: USER_APPLICATION4, Configuration: Debug AVR ------
2
Build started.
3
Project "USER_APPLICATION4.cproj" (default targets):
4
Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!='').
5
Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.1\Vs\Compiler.targets" from project "C:\Users\Marcel\Documents\Atmel Studio\6.1\USER_APPLICATION4\USER_APPLICATION4\USER_APPLICATION4.cproj" (target "Build" depends on it):
6
  Task "RunCompilerTask"
7
    C:\Program Files (x86)\Atmel\Atmel Studio 6.1\shellUtils\make.exe all 
8
    Building file: ../src/main.c
9
    Invoking: AVR/GNU C Compiler : 3.4.2
10
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe"  -DBOARD=STK600_MEGA  -I"../src" -I"../src/ASF/common/boards" -I"../src/ASF/common/utils" -I"../src/ASF/mega/utils" -I"../src/config"  -O1 -fdata-sections -ffunction-sections -fdata-sections -g3 -Wall -mmcu=atmega644 -c -std=gnu99 -fno-strict-aliasing -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -mrelax -MD -MP -MF "src/main.d" -MT"src/main.d" -MT"src/main.o"   -o "src/main.o" "../src/main.c"
11
    ../src/main.c: In function 'main':
12
C:\Users\Marcel\Documents\Atmel Studio\6.1\USER_APPLICATION4\USER_APPLICATION4\src\main.c(363,10): unused variable 'zeit_am_laufen' [-Wunused-variable]
13
C:\Users\Marcel\Documents\Atmel Studio\6.1\USER_APPLICATION4\USER_APPLICATION4\src\main.c(362,10): unused variable 'zu' [-Wunused-variable]
14
C:\Users\Marcel\Documents\Atmel Studio\6.1\USER_APPLICATION4\USER_APPLICATION4\src\main.c(361,10): unused variable 'zustand' [-Wunused-variable]
15
C:\Users\Marcel\Documents\Atmel Studio\6.1\USER_APPLICATION4\USER_APPLICATION4\src\main.c(360,10): unused variable 'seite' [-Wunused-variable]
16
C:\Users\Marcel\Documents\Atmel Studio\6.1\USER_APPLICATION4\USER_APPLICATION4\src\main.c(359,11): unused variable 'p' [-Wunused-variable]
17
    ../src/main.c: In function 'lcd_text':
18
C:\Users\Marcel\Documents\Atmel Studio\6.1\USER_APPLICATION4\USER_APPLICATION4\src\main.c(991,4): value computed is not used [-Wunused-value]
19
    Finished building: ../src/main.c
20
    Building target: USER_APPLICATION4.elf
21
    Invoking: AVR/GNU Linker : 3.4.2
22
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe" -o USER_APPLICATION4.elf  src/ASF/mega/boards/stk600/rcx_x/init.o src/main.o   -Wl,-Map="USER_APPLICATION4.map" -Wl,--start-group  -Wl,--end-group -Wl,--gc-sections -mmcu=atmega644 -Wl,--relax 
23
    c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(pow.o):/data2/home/toolsbuild/jenkins-knuth/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/pow.S:214:(.text.avr-libc.fplib+0x94): relocation truncated to fit: R_AVR_13_PCREL against symbol `__mulsf3' defined in .text section in c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_mul_sf.o)
24
    c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(inverse.o):/data2/home/toolsbuild/jenkins-knuth/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/inverse.S:50:(.text.avr-libc.fplib+0xc): relocation truncated to fit: R_AVR_13_PCREL against symbol `__divsf3' defined in .text section in c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_div_sf.o)
25
    c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(log.o):/data2/home/toolsbuild/jenkins-knuth/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/log.S:96:(.text.avr-libc.fplib+0x46): relocation truncated to fit: R_AVR_13_PCREL against symbol `__addsf3' defined in .text section in c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_addsub_sf.o)
26
    c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(log.o):/data2/home/toolsbuild/jenkins-knuth/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/log.S:100:(.text.avr-libc.fplib+0x4e): relocation truncated to fit: R_AVR_13_PCREL against symbol `__addsf3' defined in .text section in c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_addsub_sf.o)
27
    c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(log.o):/data2/home/toolsbuild/jenkins-knuth/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/log.S:116:(.text.avr-libc.fplib+0x6a): relocation truncated to fit: R_AVR_13_PCREL against symbol `__floatsisf' defined in .text section in c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_si_to_sf.o)
28
    c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libc.a(modf.o):/data2/home/toolsbuild/jenkins-knuth/workspace/avr8-gnu-toolchain/src/avr-libc/libm/fplib/modf.S:90:(.text.avr-libc.fplib+0x3e): relocation truncated to fit: R_AVR_13_PCREL against symbol `__subsf3' defined in .text section in c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.939/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_addsub_sf.o)
29
collect2.exe(0,0): ld returned 1 exit status
30
    make: *** [USER_APPLICATION4.elf] Error 1
31
    The command exited with code 2.
32
  Done executing task "RunCompilerTask" -- FAILED.
33
Done building target "CoreBuild" in project "USER_APPLICATION4.cproj" -- FAILED.
34
Done building project "USER_APPLICATION4.cproj" -- FAILED.
35
36
Build FAILED.
37
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

die warnungen mit dem "unused" sind durch auskommentieren entstanden

: Bearbeitet durch User
von Marcel (Gast)


Angehängte Dateien:

Lesenswert?

oh mein gott sieht das schlimm aus. im textdokument das "ausgerichtete"

von Marcel (Gast)


Lesenswert?

brauch man dazu noch die c datei?

von Peter II (Gast)


Lesenswert?

hast du die lib math eingebunden?

Trage im Projekt mal -lm beim linker mit ein.

von Marcel (Gast)


Lesenswert?

ich mache das mit dem avr studio. und drücke einfach nur auf "build 
solution". ich glaube also nicht das ich die eingebuden hab ;/. wie kann 
ich das dort eintragen? mensch ich komm mir blöd vor... bins auch.

von Marcel (Gast)


Lesenswert?

ok hab was gefunden für alle die das gleiche Problem haben:

Du musst dem Linker noch die richtige LIB angeben. Dafür musst du nur 
bei den Projekteigenschaften 
"Properties->C/C++Build->Settings->AVR32/Gnu C Linker->Libraries" bei 
den Libraries ein "m" hinzufügen. Der Linker bekommt damit ein -lm(weil 
das "-l" vom Studio an das angegebene "m" angefügt wird), was ihm sagt 
er soll die Math Library auch mit einbinden. Das -lm wird übrigens 
etfaltet zu dem Dateinamen libm.a, welche die vorkompilierten Funktionen 
für die math.h enthält. Nachlesen lässt sich das übrigens gut in der 
Dokumentation für die 8 Bit AVRs.

von Marcel (Gast)


Lesenswert?

danke peter =). mit deinem beitrag hat man an der richtigen stelle 
suchen können

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
Noch kein Account? Hier anmelden.