- Akku Tests und Balkonkraftwerk Speicher         
Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 43

Thema: mal wieder ne Änfängerfrage: Strings

  1. #31
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    36
    Beiträge
    194
    Anzeige

    Praxistest und DIY Projekte
    hmmm...
    bei mir ist es in stdlib drin!

    welche Version von GCC hast du?

  2. #32
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    36
    Beiträge
    194
    sry hab gerade was falsches geschrieben ... dtostre ist nicht in stdlib drin...

    habe gerade folgendes gefunden:
    Note that these functions are not located in the default library, libc.a, but in the
    mathematical library, libm.a. So when linking the application, the -lm option needs
    to be specified.

  3. #33
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.02.2005
    Beiträge
    385
    Das hatten wir irgendwann schonmal aber es wurde glaube ich nicht geklärt wo dieses "-lm" hin muss. Um ehrlich zu sein: Ich habe keine Ahnung was "linken" überhaupt ist.

    mfg
    jagdfalke

  4. #34
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    36
    Beiträge
    194
    versuch einmal in deinem Makefile an die folgende Zeile " -lm" anhängen:
    CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues

    zu der Frage was Linken überhaupt ist:
    http://de.wikipedia.org/wiki/Linker_%28Programm%29

  5. #35
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.02.2005
    Beiträge
    385
    immernoch das hier:
    inux:/home/mathias/makefile und load/roboterarm steuerung # make
    avr-gcc -g -mmcu=atmega32 -Wall -Wstrict-prototypes -Os -mcall-prologues -lm -Os -c test.c
    test.c:42:2: warning: no newline at end of file
    avr-gcc: -lm: linker input file unused because linking not done
    avr-gcc -g -mmcu=atmega32 -Wall -Wstrict-prototypes -Os -mcall-prologues -lm -o test.out -Wl,-Map,test.map test.o
    test.o: In function `main':
    /home/mathias/makefile und load/roboterarm steuerung/test.c:21: undefined reference to `dtostrf'
    make: *** [test.out] Fehler 1
    werd mir das mal durchlesen im wiki.

    thx
    jagdfalke

  6. #36
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    36
    Beiträge
    194
    Funktionierts wenn du das -lm an die folgende Zeile anhängst??
    $(CC) $(CFLAGS) -Os -c test.c

  7. #37
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.02.2005
    Beiträge
    385
    nee, aber wenigstens hat sich die Fehlermeldung schon mal geändert:
    linux:/home/mathias/makefile und load/roboterarm steuerung # make
    avr-gcc -g -mmcu=atmega32 -Wall -Wstrict-prototypes -Os -mcall-prologues -lm -Os -c test.c -lm
    test.c:42:2: warning: no newline at end of file
    avr-gcc: -lm: linker input file unused because linking not done
    avr-gcc: -lm: linker input file unused because linking not done
    avr-gcc -g -mmcu=atmega32 -Wall -Wstrict-prototypes -Os -mcall-prologues -lm -o test.out -Wl,-Map,test.map test.o
    test.o: In function `main':
    /home/mathias/makefile und load/roboterarm steuerung/test.c:21: undefined reference to `dtostrf'
    make: *** [test.out] Fehler 1

  8. #38
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.02.2005
    Beiträge
    385
    nee hatse eigentlich nicht. liegt daran, dass ich das andere lm nicht entfernt hab

  9. #39
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2005
    Ort
    Obertraun
    Alter
    36
    Beiträge
    194
    Dann müsste es hoffendlich so funktionieren, wenn du "-lm" an die Zeile
    $(CC) $(CFLAGS) -o test.out -Wl,-Map,test.map test.o
    anhängst und die andern -lm die du vorher angehängt hast wieder entfernst ...

  10. #40
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.02.2005
    Beiträge
    385
    also mit diesem makefile:
    Code:
    # makefile, written by guido socher
    MCU=atmega32
    CC=avr-gcc
    OBJCOPY=avr-objcopy
    # optimize for size:
    CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues
    #-------------------
    all: test.hex
    #-------------------
    help: 
    	@echo "Usage: make all|load|load_pre|rdfuses|wrfuse1mhz|wrfuse4mhz|wrfusecrystal"
    	@echo "Warning: you will not be able to undo wrfusecrystal unless you connect an"
    	@echo "         external crystal! uC is dead after wrfusecrystal if you do not"
    	@echo "         have an external crystal."
    #-------------------
    test.hex : test.out
    	$(OBJCOPY) -R .eeprom -O ihex test.out test.hex
    test.out : test.o
    	$(CC) $(CFLAGS) -o test.out -Wl,-Map,test.map test.o
    test.o : test.c
    	$(CC) $(CFLAGS) -Os -c test.c -lm
    #------------------
    load: test.hex
    	./prg_load_uc test.hex
    # here is a pre-compiled version in case you have trouble with
    # your development environment
    load_pre: test_pre.hex
    	./prg_load_uc test.hex
    #
    loaduisp: test.hex
    	./prg_load_uc -u test.hex
    # here is a pre-compiled version in case you have trouble with
    # your development environment
    load_preuisp: test_pre.hex
    	./prg_load_uc -u test.hex
    #-------------------
    # fuse byte settings:
    #  Atmel AVR ATmega8 
    #  Fuse Low Byte      = 0xe1 (1MHz internal), 0xe3 (4MHz internal), 0xe4 (8MHz internal)
    #  Fuse High Byte     = 0xd9 
    #  Factory default is 0xe1 for low byte and 0xd9 for high byte
    # Check this with make rdfuses
    rdfuses:
    	./prg_fusebit_uc -r
    # use internal RC oscillator 1 Mhz
    wrfuse1mhz:
    	./prg_fusebit_uc -w 1
    # use internal RC oscillator 4 Mhz
    wrfuse4mhz:
    	./prg_fusebit_uc -w 4
    # use external 3-8 Mhz crystal
    # Warning: you can not reset this to intenal unless you connect a crystal!!
    wrfusecrystal:
    	@echo "Warning: The external crystal setting can not be changed back without a working crystal"
    	@echo "         You have 3 seconds to abort this with crtl-c"
    	@sleep 3
    	./prg_fusebit_uc -w 0
    #-------------------
    clean:
    	rm -f *.o *.map *.out *t.hex
    #-------------------
    kommt diese Fehlermeldung:
    linux:/home/mathias/makefile und load/roboterarm steuerung # make
    avr-gcc -g -mmcu=atmega32 -Wall -Wstrict-prototypes -Os -mcall-prologues -o test.out -Wl,-Map,test.map test.o
    test.o: In function `main':
    /home/mathias/makefile und load/roboterarm steuerung/test.c:21: undefined reference to `dtostrf'
    make: *** [test.out] Fehler 1
    es hat sich also nichts geändert, egal wo ich "-lm" hinzufüge oder weglasse

    mfg
    jagdfalke

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test