makefile - keine Regel um "elf" zu erstellen (Debian)

OP #450403
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
Gast #450526
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.
Gast #450602
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.
Moderator Persönliche Seite #450713
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.
1
$ make -v
2
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
3
Built for i686-pc-linux-gnu
4
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
5
        Free Software Foundation, Inc.
6
This is free software; see the source for copying conditions.
7
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
8
PARTICULAR PURPOSE.
9

10
Report bugs to <bug-make@gnu.org>.
OP #450714
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
Gast #450733
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!

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.