Schönen guten Abend, ich bin Neueinsteiger und wollte mit Hilfe des STK500,WinAVR und AVR-Studio in die Materie einsteigen. Dafür wollte ich das AVR-GCC-Tutorial durchackern. Der erste Code stand und hat bereits funktioniert. Beim zweiten Durchlauf kam letztlich im "Programmers Notepad2"(WIN-AVR 20100110) diese Fehlermehldung hier: > "make.exe" all .dep/main_elf.aps:1: *** target pattern contains no `%'. Stop. > Process Exit Code: 2 > Time Taken: 00:00 Nach einiger Recherche habe ich herausgefunden, dass der Fehler auf die Angabe des Verzeichnisses im Makefile zurückzuführen ist. Hier spackt er wohl wegen des ":"-Zeichens in der Verzeichnisangabe rum, aber das sind nur wage Einschränkungen des Problems. In den meisten Foren wird nur gesagt, dass es daran liegt, aber nciht wie es richtig sein soll. Kennt sich einer mit dem Fehler aus und weiß, was abzuändern ist? Hier der wahrscheinlich relevante Teil meiner Makefile, die ich mit mfile erstellt habe. Falls mehr benötigt wird, liefer ich gerne mehr Daten. Vielen Dank schonmal!
1 | # MCU name
|
2 | MCU = atmega8515 |
3 | |
4 | |
5 | # Processor frequency.
|
6 | # This will define a symbol, F_CPU, in all source code files equal to the
|
7 | # processor frequency. You can then use this symbol in your source code to
|
8 | # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
9 | # automatically to create a 32-bit value in your source code.
|
10 | # Typical values are:
|
11 | # F_CPU = 1000000
|
12 | # F_CPU = 1843200
|
13 | # F_CPU = 2000000
|
14 | # F_CPU = 3686400
|
15 | # F_CPU = 4000000
|
16 | # F_CPU = 7372800
|
17 | # F_CPU = 8000000
|
18 | # F_CPU = 11059200
|
19 | # F_CPU = 14745600
|
20 | # F_CPU = 16000000
|
21 | # F_CPU = 18432000
|
22 | # F_CPU = 20000000
|
23 | F_CPU = 8000000 |
24 | |
25 | |
26 | # Output format. (can be srec, ihex, binary)
|
27 | FORMAT = ihex |
28 | |
29 | |
30 | # Target file name (without extension).
|
31 | TARGET = main |
32 | |
33 | |
34 | # Object files directory
|
35 | # To put object files in current directory, use a dot (.), do NOT make
|
36 | # this an empty or blank macro!
|
37 | OBJDIR = . |
38 | |
39 | |
40 | # List C source files here. (C dependencies are automatically generated.)
|
41 | SRC = $(TARGET).c |
42 | |
43 | |
44 | # List C++ source files here. (C dependencies are automatically generated.)
|
45 | CPPSRC = |
46 | |
47 | |
48 | # List Assembler source files here.
|
49 | # Make them always end in a capital .S. Files ending in a lowercase .s
|
50 | # will not be considered source files but generated files (assembler
|
51 | # output from the compiler), and will be deleted upon "make clean"!
|
52 | # Even though the DOS/Win* filesystem matches both .s and .S the same,
|
53 | # it will preserve the spelling of the filenames, and gcc itself does
|
54 | # care about how the name is spelled on its command-line.
|
55 | ASRC = |
56 | |
57 | |
58 | # Optimization level, can be [0, 1, 2, 3, s].
|
59 | # 0 = turn off optimization. s = optimize for size.
|
60 | # (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
|
61 | OPT = s |
Quellen: http://www.gnu.org/savannah-checkouts/gnu/make/manual/html_node/Static-Usage.html#Static-Usage http://fixunix.com/kernel/368943-kernel-compilation-make-halts-error-message-***-target-pattern-contains-no-%60%25.html http://forums.devshed.com/c-programming-42/target-pattern-contains-no-174161.html http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=396363