mikrocontroller.net

Forum: Compiler & IDEs makefile - keine Regel um "elf" zu erstellen (Debian)


Autor: Matze Klaus (phytomed)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe Probleme mit meinem Makefile!
Und zwar wird folgender Fehler ausgegeben

-------- begin --------
avr-gcc (GCC) 4.1.0
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.

make: *** Keine Regel vorhanden, um das Target »HeDiWet.elf«,
  benötigt von »elf«, zu erstellen.  Schluss.

wenn die Source-Liste zu lang wird.
Wenn die letzten beiden Dateien nicht eingetragen sind funktioniert es?!

# List C source files here. (C dependencies are automatically 
generated.)
SRC = $(TARGET).c lcd.c uart.c ds1302.c ee24xx.c helpfunction.c


Dürfen nur eine gewisse Anzahl an Dateien eingefügt werden,
oder darf die Länge der Namen nur eine bestimmte Anzahl an Buchstaben 
haben?

Vielen Dank
Matthias

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sieht denn der Rest des Makefiles aus?

Autor: Matze Klaus (phytomed)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

der Fehler "muss" in der genannten Zeile liegen,
da es funktioniert,
wenn ich die letzten beiden Dateien entferne.

Trotzdem vielen Dank für die Mühen
Matthias

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Fehlermeldungen diskutiert man nicht ;-)

BTW. Ich hätte dich auch gefragt, wie der Rest des Makefiles aussieht. 
Insbesondere was als TARGET definiert ist und ob du von einem main.c 
oder einem HeDiWet.c ausgehst.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> der Fehler "muss" in der genannten Zeile liegen, da es funktioniert,
> wenn ich die letzten beiden Dateien entferne.

Für sich alleine gesehen ist die Zeile völlig in Ordnung, also "kann" 
der Fehler nicht in dieser Zeile liegen. Entweder haben wir also ein 
Paradoxon, oder es kommt noch auf den Rest des Makefile an.

Autor: Matze Klaus (phytomed)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

hier das gesamte Makefile

Weiterhin Danke
Matthias

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht liegt's ja an deinem GNU Make?

Ich habe mir die darin genannten Dateien mal erstellt (HeDiWet.c
mit einem leeren main(), den Rest einfach als leere Dateien), make
läuft hier anstandslos durch damit.
$ make -v
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for i686-pc-linux-gnu
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
        Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

Report bugs to <bug-make@gnu.org>.

Autor: Matze Klaus (phytomed)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein make ist:

GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.


This program built for i486-pc-linux-gnu


Es funktioniert ja auch,
nur eben halt nicht mit mehr als 3 Dateien.

Danke
Matthias

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
# Deine Version:
# Link: create ELF output file from object files.
.SECONDARY : $(TARGET).elf
.PRECIOUS : $(OBJ)
%.elf: $(OBJ)
  @echo
  @echo $(MSG_LINKING) $@
  $(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS)

# Andere Version (Artikelsammlung)
# Link: create ELF output file from object files.
.SECONDARY : $(TARGET).elf
.PRECIOUS : $(OBJ)
%.elf: $(OBJ)
  @echo
  @echo $(MSG_LINKING) $@
  $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)

Ansonsten...
http://en.wikipedia.org/wiki/Make#Debugging_Makefiles

Viel Glück!

Autor: Matze Klaus (phytomed)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

vielen Dank für die Versuche,
Leider hat die Modifikation nichts gebracht.
Vielleicht fange ich noch einmal wie Jörg gesagt,
mit leeren Dateien an.

Heute allerdings nicht mehr.

Melde mich aber wieder

Matthias

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.