Hi, ich bastle gerade ein wenig an Anjuta und versuche, dass Makefile dafür anzupassen. Ich habe aber ein Problem mit der Zeile CFLAGS += -Wa,-adhlns=$(<:.c=.lst) Genauer gesagt mit dem Teil ab dem Komma. Sobald ich den Teil im Makefile habe spuckt Anjuta beim Laden eine Meldung aus, dass Projekt sei falsch gebaut oder sowas ähnliches. Was macht der Teil genau und kann man das eventuell umschreiben?
-Wa ist eine Compileroption, die das, was nach dem , steht, an den Assembler weiterreicht. Das $ ist make-Magie, was zu Problemen führt, wenn der Compiler mit nicht-C Dateien gefüttert wird (*.S, *.cpp, *.sx, *.c++, *.C, ...)
Gast
#2276391
http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Assembler-Options.html#Assembler-Options http://www.cs.utah.edu/dept/old/texinfo/as/as.html#SEC9 http://www.gnu.org/software/make/manual/make.html#Automatic-Variables http://www.google.de Oliver
Die automatische Variable $< ist in make mit der ersten Abhängigkeit der aktuellen Build Rule belegt, das ist generell die Quelldatei. Dann gibt es noch Substitutionen der Form $(var:.x=.y), das nimmt die Variable var und ersetzt die Endung .x durch .y. In der verwendeten Kombination wird also der Name der Quelldatei genommen und die Endung .c durch .lst ersetzt. Soweit zum Makefile, was ist das Problem denn genau?
Andreas B. schrieb: > was ist das Problem denn genau? Das kann ich leider nicht genau sagen. Ich versuche mich gerade daran, für Anjuta einen Project Wizard für den avr-gcc zu basteln. Aber sobald ich diese Zeile einbaue spuckt er einen Fehler aus, wenn das Projekt geladen wird. Aber die einzige Aussage der Fehlermeldung ist "Falsch gebautes Projekt" Auch die Konsole spuckt nicht mehr Informationen aus. Anjuta verwendet an der Stelle Autogen. Ein Makefile Template wird mit Autogen bearbeitet. Eventuell stört sich Autogen an einer Zeichenfolge, die Autogen selbst verwendet.
Bisschen Vorsicht mit solchen Ersetzungen. Wenn die Zeile mal irgendwo auftaucht, wo es nicht exakt .c heisst, dann wird nichts ersetzt und das Listing bügelt den Quellcode weg. Weniger riskant ist es, wenn man bei solchen Ersetzungen vom Zielfile statt vom Quellfile ausgeht.
Ok, Frage: kann man das umschreiben oder ganz weglassen? Das stammt aus dem Standard Makefile hier aus dem GCC Tutorial. Bisher hat es immer funktioniert. Hat jemand vielleicht ein einfacheres Makefile, welches ich als Basis verwenden kann? Bin leider kein Make Experte
Gast
#2276644
Markus B. schrieb: > Ok, Frage: kann man das umschreiben oder ganz weglassen? Wenn du es weglässt, wird das .lst-File nicht mehr generiert. Wenn dich das nicht weiter stört, lass es weg.
Rolf Magnus schrieb: > Wenn du es weglässt, wird das .lst-File nicht mehr generiert. Wenn dich > das nicht weiter stört, lass es weg. Achso, würde mich im Moment nicht stören. Danke
Hier mal das erste Ergebnis meines Gebastels http://www.elektronik-projekt.de/thread.php?threadid=6888 Die fragliche Zeile hab ich noch weg gelassen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.