mikrocontroller.net

Forum: Compiler & IDEs makeFile Problem


Autor: Boggi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute

Ich habe mich heute entschieden mein Problem ins Forum zu posten, da
ich alleine nicht mehr weiterkomme.

Ich arbeite mit dem GCC von Winavr.
Habe mir danach die AVRX- Libary heruntergeladen und installiert.

die Beispielsourcen die bei der Libary dabei sind (incl. Makefiles)
funktionieren einwandfrei.

Dann habe ich versucht, die Libary in mein MakeFile einzubauen und bin
gescheitert.
Dann habe ich versucht mein Project in das Beispiel-makeFile
einzubauen. Dabei bin ich ebenfalls gescheitert.

Das problem ist, dass mein Project aus mehreren Dateien besteht, und
ich das dem MakeFile irgendwie nicht bei bringen kann

Ich hoffe mir kann jemand hgier helfen ...

Ihr seid meine letzte hoffnung

Hier die Fehlermeldungen:


Compiling: main.c
avr-gcc -c -mmcu=atmega128 -I. -g   -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=main.lst -Iavrx/ -std=gnu99
-Wp,-M,-MP,-MT,main.o,-MF,.dep/main.o.d main.c -o main.o
In file included from main.c:13:
Sleep.h:2: warning: function declaration isn't a prototype
Sleep.h:3: warning: function declaration isn't a prototype
Sleep.h:4: warning: function declaration isn't a prototype
main.c:142: warning: return type of `main' is not `int'

Linking: main.elf
avr-gcc main.o avrx/avrx.a -mmcu=atmega128 -I. -g   -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=main.o -Iavrx/ -std=gnu99
-Wp,-M,-MP,-MT,main.o,-MF,.dep/main.elf.d main.o sleep.o   --output
main.elf -Wl,-Map=main.map,--cref    -lm
main.o(.text+0x0): In function `LedNight':
D:\Aquarium/main.c:40: multiple definition of `LedNight'
main.o(.text+0x0):D:\Aquarium/main.c:40: first defined here
main.o(.text+0x52): In function `main':
D:\Aquarium/main.c:142: multiple definition of `main'
main.o(.text+0x52):D:\Aquarium/main.c:142: first defined here
make: *** [main.elf] Error 1

> Process Exit Code: 2



und im Anhang findet ihr das makefile ...

Ich hoffewirklich ihr könnt mir helfen thx

Autor: Fritz Ganter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast main.c und sleep.c als Dateien angeben, wolltest du das?

Lies doch einfach mal die Fehlermeldung, dafür ist sie doch da!

D:\Aquarium/main.c:142: multiple definition of `main'
main.o(.text+0x52):D:\Aquarium/main.c:142: first defined here

Kann es sein, dass du in sleep.c auch die Funktion main drinnen hast?

Im Makefile brauchst du nur deine Dateien eintragen, wenn du z.b
josef.c hilf.c und irgendwas.c hast, und dein Programm josef heissen
soll, dann trag ein:

# Target file name (without extension).
TARGET = josef


# List C source files here. (C dependencies are automatically
generated.)
SRC = $(TARGET).c hilf.c irgendwas.c

$(TARGET).c wird hier zu josef.c expandiert.

Du darfst natürlich nur in einem file ein main() haben.

Autor: Boggi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe in sleep.c kein main drinnen ...


und habe so wie du es beschrieben hast ja auchg angegeben ...

ein Target ... und das file heisst main
und mehrere sourcen ... wie z.bsp Sleep und main ...


das gtanze funktioniert, wenn ich die funktionalität von Sleep.c nach
main.c kopiere und nsleep.c aus dem makefile herausneheme. Aber ich
will das ja schön übersichtlich gestalten

Autor: Fritz Ganter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ein Target ... und das file heisst main
>und mehrere sourcen ... wie z.bsp Sleep und main ...

Bei den Sourcen darf main.c nicht mehr drin sein, weil es als $target
schon drin steht.

Die Fehlermeldungen sehen aus als wenn main.c zweimal gelinkt wird.

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.