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


von Matze K. (phytomed)


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

von Rolf Magnus (Gast)


Lesenswert?

Wie sieht denn der Rest des Makefiles aus?

von Matze K. (phytomed)


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

von Stefan (Gast)


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.

von Rolf Magnus (Gast)


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.

von Matze K. (phytomed)


Angehängte Dateien:

Lesenswert?

Moin,

hier das gesamte Makefile

Weiterhin Danke
Matthias

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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>.

von Matze K. (phytomed)


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

von Stefan (Gast)


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!

von Matze K. (phytomed)


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

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.