mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Makefile: No rule to make target


Autor: mr-unbekannt (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Mein nächstes Projekt wäre ein MP3 Player mittels mega8 und VS1001...
als Vorlage dient das großartige Projekt von 
http://members.liwest.at/dobretsb/stephan/mp3player.html

Ich habe versucht seine Dateien zu kompilieren (mittels WinAVR, also PN 
als Editor) aber ich bekomme immer denselben Fehler:

> "make.exe" all

-------- begin --------
avr-gcc (GCC) 4.1.1 (WinAVR 20070122)
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.exe: *** No rule to make target `*.o', needed by `mp3.elf'.  Stop.

> Process Exit Code: 2

Der Error wird wahrscheinlich vom Makefile ausgelöst, aber ich habe 
keine Ahnung was am Makefile falsch sein soll, außerdem bin ich in 
diesem Gebiet leider nicht so bewandert...

Könnte mir bitte jemand helfen den Fehler im Makefile zu finden?

Danke!

PS: Habe Suchfunktion bereits genutzt -> keine Hilfe

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In dem Makefile (hier lohnt sich dein Anhang!) ist diese Zeile drin:

# List C source files here. (C dependencies are automatically 
generated.)
SRC = *.c

ändere das *.c zu dem oder wahrscheinlicher den Dateinamen deiner Source

Beispiel:

# List C source files here. (C dependencies are automatically 
generated.)
SRC = main.c datei1.c datei2.c datei3.c

Scheinbar kann das make-Programm des Originalautors das * selbstständig 
erweitern und dein make.exe kann das nicht.

Autor: mr-unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
puhh ;-) hab ich schon mal gemacht, aber da sind so viele 
Fehlermeldungen gekommen dass ich das sofort wieder sein ließ

aber danke!

wenn mir vl jetzt noch wer helfen könnte:

> "make.exe" all

-------- begin --------
avr-gcc (GCC) 4.1.1 (WinAVR 20070122)
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.


Compiling: mp3.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=mp3.lst  -std=gnu99 
-Wp,-M,-MP,-MT,mp3.o,-MF,.dep/mp3.o.d mp3.c -o mp3.o
mp3.c: In function 'setup_buttons':
mp3.c:116: warning: implicit declaration of function 'cbi'
mp3.c:123: warning: implicit declaration of function 'sbi'
mp3.c: In function 'process_buttons':
mp3.c:171: warning: implicit declaration of function 'inp'
mp3.c: In function 'main':
mp3.c:254: warning: pointer targets in passing argument 3 of 'fopenc' 
differ in signedness

Compiling: config.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=config.lst  -std=gnu99 
-Wp,-M,-MP,-MT,config.o,-MF,.dep/config.o.d config.c -o config.o

Compiling: delay.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=delay.lst  -std=gnu99 
-Wp,-M,-MP,-MT,delay.o,-MF,.dep/delay.o.d delay.c -o delay.o

Compiling: fat.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=fat.lst  -std=gnu99 
-Wp,-M,-MP,-MT,fat.o,-MF,.dep/fat.o.d fat.c -o fat.o
fat.c: In function 'fplay_sector':
fat.c:797: warning: implicit declaration of function 'inp'
fat.c:798: warning: implicit declaration of function 'sbi'
fat.c:799: warning: implicit declaration of function 'outp'
fat.c:803: warning: implicit declaration of function 'cbi'

Compiling: mmc.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=mmc.lst  -std=gnu99 
-Wp,-M,-MP,-MT,mmc.o,-MF,.dep/mmc.o.d mmc.c -o mmc.o
mmc.c: In function 'MMC_enable':
mmc.c:146: warning: implicit declaration of function 'cbi'
mmc.c: In function 'MMC_disable':
mmc.c:152: warning: implicit declaration of function 'sbi'

Compiling: spi.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=spi.lst  -std=gnu99 
-Wp,-M,-MP,-MT,spi.o,-MF,.dep/spi.o.d spi.c -o spi.o
spi.c: In function 'spi_init':
spi.c:31: warning: implicit declaration of function 'sbi'
spi.c:33: warning: implicit declaration of function 'cbi'
spi.c:35: warning: implicit declaration of function 'outp'
spi.c: In function 'spi_io':
spi.c:41: warning: implicit declaration of function 'inp'

Compiling: test.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=test.lst  -std=gnu99 
-Wp,-M,-MP,-MT,test.o,-MF,.dep/test.o.d test.c -o test.o
test.c: In function 'dot':
test.c:17: warning: implicit declaration of function 'cbi'
test.c:19: warning: implicit declaration of function 'sbi'

Compiling: vs1001.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=vs1001.lst  -std=gnu99 
-Wp,-M,-MP,-MT,vs1001.o,-MF,.dep/vs1001.o.d vs1001.c -o vs1001.o
vs1001.c: In function 'VS1001_send_SCI':
vs1001.c:34: warning: implicit declaration of function 'cbi'
vs1001.c:42: warning: implicit declaration of function 'sbi'
vs1001.c: In function 'VS1001_send_SDI':
vs1001.c:62: warning: implicit declaration of function 'outp'
vs1001.c:68: warning: implicit declaration of function 'inp'

Linking: mp3.elf
avr-gcc -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=mp3.o  -std=gnu99 
-Wp,-M,-MP,-MT,mp3.o,-MF,.dep/mp3.elf.d mp3.o config.o delay.o fat.o 
mmc.o spi.o test.o vs1001.o  --output mp3.elf -Wl,-Map=mp3.map,--cref 
-lm
test.o: In function `blink_error':
test.c:49: undefined reference to `cbi'
test.c:51: undefined reference to `sbi'
test.o: In function `blink_end':
test.c:39: undefined reference to `cbi'
test.c:41: undefined reference to `sbi'
test.o: In function `blink_start':
test.c:31: undefined reference to `sbi'
test.o: In function `dash':
test.c:24: undefined reference to `cbi'
test.c:26: undefined reference to `sbi'
test.o: In function `dot':
test.c:17: undefined reference to `cbi'
test.c:19: undefined reference to `sbi'
mp3.o: In function `setup_buttons':
mp3.c:116: undefined reference to `cbi'
mp3.c:117: undefined reference to `cbi'
mp3.c:118: undefined reference to `cbi'
mp3.c:119: undefined reference to `cbi'
mp3.c:120: undefined reference to `cbi'
mp3.c:123: undefined reference to `sbi'
mp3.c:124: undefined reference to `sbi'
mp3.c:125: undefined reference to `sbi'
mp3.c:126: undefined reference to `sbi'
mp3.c:127: undefined reference to `sbi'
mp3.o:mp3.c:130: more undefined references to `sbi' follow
mp3.o: In function `setup_buttons':
mp3.c:131: undefined reference to `cbi'
mp3.o: In function `process_buttons':
mp3.c:171: undefined reference to `inp'
mp3.c:195: undefined reference to `sbi'
mp3.o: In function `main':
mp3.c:235: undefined reference to `sbi'
mp3.c:252: undefined reference to `cbi'
mp3.c:269: undefined reference to `sbi'
fat.o: In function `fplay_sector':
fat.c:797: undefined reference to `inp'
fat.c:798: undefined reference to `sbi'
fat.c:799: undefined reference to `outp'
fat.c:803: undefined reference to `cbi'
fat.c:805: undefined reference to `inp'
fat.c:806: undefined reference to `inp'
mmc.o: In function `MMC_CS_deselect':
mmc.c:165: undefined reference to `sbi'
mmc.o: In function `MMC_disable':
mmc.c:152: undefined reference to `sbi'
mmc.c:153: undefined reference to `sbi'
mmc.o: In function `MMC_CS_select':
mmc.c:159: undefined reference to `cbi'
mmc.o: In function `MMC_enable':
mmc.c:146: undefined reference to `cbi'
mmc.c:147: undefined reference to `cbi'
mmc.o: In function `MMC_hw_init':
mmc.c:290: undefined reference to `sbi'
mmc.c:291: undefined reference to `sbi'
spi.o: In function `spi_io':
spi.c:40: undefined reference to `outp'
spi.c:41: undefined reference to `inp'
spi.c:42: undefined reference to `inp'
spi.o: In function `spi_init':
spi.c:31: undefined reference to `sbi'
spi.c:32: undefined reference to `sbi'
spi.c:33: undefined reference to `cbi'
spi.c:34: undefined reference to `cbi'
spi.c:35: undefined reference to `outp'
vs1001.o: In function `VS1001_HW_reset':
vs1001.c:105: undefined reference to `cbi'
vs1001.c:109: undefined reference to `sbi'
vs1001.o: In function `VS1001_send_SDI':
vs1001.c:61: undefined reference to `sbi'
vs1001.c:62: undefined reference to `outp'
vs1001.c:66: undefined reference to `cbi'
vs1001.c:68: undefined reference to `inp'
vs1001.o: In function `VS1001_send_SDI_32':
vs1001.c:73: undefined reference to `inp'
vs1001.o: In function `VS1001_read_SCI':
vs1001.c:48: undefined reference to `cbi'
vs1001.c:56: undefined reference to `sbi'
vs1001.o: In function `VS1001_send_SCI':
vs1001.c:34: undefined reference to `cbi'
vs1001.c:42: undefined reference to `sbi'
vs1001.o: In function `VS1001_SW_reset':
vs1001.c:95: undefined reference to `inp'
vs1001.o: In function `VS1001_init':
vs1001.c:116: undefined reference to `cbi'
vs1001.c:117: undefined reference to `sbi'
vs1001.c:120: undefined reference to `sbi'
vs1001.c:121: undefined reference to `cbi'
vs1001.c:124: undefined reference to `sbi'
vs1001.c:125: undefined reference to `sbi'
vs1001.c:129: undefined reference to `cbi'
vs1001.c:130: undefined reference to `sbi'
make.exe: *** [mp3.elf] Error 1

> Process Exit Code: 2

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind im wesentlichen Warnungen, die davon kommen, dass du wohl eine 
neuere WinAVR Version hast als der Originalautor (OA).

Die echten Fehler mit der undefinierten Referenz sind auch auf eine 
ältere WinAVR Version beim OA zurückzuführen. Die vermissten Funktionen 
sind in neueren WinAVR Versionen bzw. der avr-libc nicht mehr da. Du 
hast jetzt mehrere Möglichkeiten.

Du kannst versuchen einen älteren WinAVR zu installieren und den zu 
benutzen. Ideal ist die Version die der OA hatte. Dazu den jetzigen 
WinAVR Ordner vor der Neuinstallation des älteren WinAVR umbenennen! DIe 
ältere Version(en) kannst du bei Sourceforge bekommen.

Oder du beisst in den sauren Apfel und passt die Source auf den neuen 
WiNAVR an. Die wenigen Funktionen oben sind schnell z.B. per Makro 
angepasst. Hinweise dazu findest du in der Anleitung zu der C-Library 
avr-libc bzw. wahrscheinlich auch in der Artikelsammlung dieser Seite.

Ich würde den zweiten Weg bevorzugen, verstehe aber, wenn ein C oder µC 
Anfänger davor zurückschreckt. Für den ist aber auch ein MP3 Player ein 
extrem herausforderndes Projekt.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <compat/deprecated.h>

in der einen oder anderen Datei könnte helfen.

Autor: mr-unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@holger: hat leider keine Auswirkungen

danke stefan b.

Jetzt habe ich noch eine Frage:
Was bedeuten die vielen .o files?
zum schluss will ich ja eine mp3.hex haben?!
Oder wird die dann aus den .o files erzeugt, wenn keine Fehler mehr 
sind?

Danke

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>@holger: hat leider keine Auswirkungen

Kann ich nicht nachvollziehen. Die Fehlermeldungen
zu sbi,cbi,inp,outp sollten damit alle verschwinden.

#include <compat/deprecated.h>

einfach in types.h eingetragen und eine wunderschöne
HEX Datei ist das Resultat.

Autor: mr-unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DANKE! Hat doch geklappt!

Vielen Dank!

Autor: eProfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Meldung "no rule to make target" kommt bei mir auch, sie kommt aber 
nicht, wenn das Makefile das Aktive Editorfile ist.

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.