Hallo,
verstehe das Verhalten von avrdude beim Compilieren nicht. Ich habe drei
c-Files, die per makefile mit "SRC = $(TARGET)" eingebunden werden.
Ändere ich in einer dieser Dateien etwas, so kommt beim Compilieren eine
Fehlermeldung ("Variable nicht deklariert"). Was ich nicht verstehe:
- Wenn ich die Änderung zurücknehme (per undo im editor, Tippfehler also
ausgeschlossen) und das betreffende c-file sowie main.c speichere (beide
sind in den Zustand VOR der Änderung zurückversetzt), so kommt beim
Compilieren immer noch die Fehlermeldung, obwohl ich doch die den Fehler
auslösenden Änderungen rückgängig gemacht habe.
Weiß jemand Hilfe? Danke im Voraus.
Gast
#3524211
Roman S. schrieb: > die per makefile mit "SRC = $(TARGET)" eingebunden werden. Das klingt arg seltsam. kannst du das mal genauer beschreiben? Oliver
Hi Oliver, dies ist die angesprochene Stelle im makefile, (ich denke, das müßte soweit korrekt sein, ich verwende ein makefile und die c-sourcen von Uli Radig (mmc-Karten-Bibliothek)):
1 | |
Wie gesagt, das wird anfänglich richtig compiliert, wenn ich aber eine Änderung durchführe, gibt es das Verhalten aus meinem ersten posting. In dem Code sind außerdem includes referenziert. Die Änderungen waren wie folgt: Ersetzen dieser Funktion in der Datei "usart.c":
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
durch eine eigene, in der "UCR" nicht vorkommt. Beim Compilieren meckert er dann, dass "UCR" nicht deklariert ist (???). Nehme ich die Änderung zurück, speichere beide files (main.c und usart.c) und compiliere erneut, dann ändert das nichts. Erst, wenn ich die files lösche und sie aus dem von der Downloadquelle runtergeladenen Ordner erneut in mein Projektverzeichnis kopiere, tut es wieder. Hoffe, meine Schilderung ist halbwegs verständlich. Gruß, Roman
Gast
#3524349
Hast Du mal alle Zwischendateien (manchmal *.obj), nach einer Änderung und den darauf folgenden schritten zur Neuerstellung gelöscht? Wenn Du die Originale noch hast, kannst Du damit nicht viel falsch machen. Und dann den Compiler/Linker drauf losgelassen. Ganz wichtig die Meldungen nicht nur durchrauschen lassen sondern bestaunen. Ein weiterer Stolperstein könnte ein vergessener Schreibschutz, bei einer der Dateien sein.
Gast
#3524358
>SRC = $(TARGET).c mmc.c fat.c usart.c
Dieses Konstrukt wird in vielen Makefiles verwendet.
Sollte also gehen.
Wird in der konkreten Zeile auch: "$(TARGET).c" richtig aufgelöst?
Siehe auch Compilerausgabe.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.