Forum: Compiler & IDEs Makefiles erstellen


von Christoph Budelmann (Gast)


Lesenswert?

Hallo zusammen,

ich mache gerade meine ersten Mikrocontroller-Gehversuche mit einem
Atmega16 und habe beim Erstellen der *.hex-Datei mit dem Programmers
Notepad folgendes Problem:
Es wird eine delay-Funktion nicht erkannt, wobei die Header-Datei
delay.h Verzögerungsfunktionen aus einer Bibliothek delay.a verwenden
sollte. Meine Vermutung ist, dass mein Makefile (mit mfile erstellt)
nicht ganz in Ordnung ist. Wie sage ich also meinem Makefile (wenn
möglich beim Erstellen mit mfile), dass er auch auf die Bibliothek
zugreifen soll?

Gruß
Christoph

von Jörg Wunsch (Gast)


Lesenswert?

Sorry, auf richtige Bibliotheken ist Mfile nicht eingerichtet.  Es ist
dafür gedacht, den Anfängern das (eigentlich unumgängliche) Erlernen
der Grundlagen von `make' so lange erstmal vom Halse zu halten, daß
sie einen schnellen Start in die AVR-GCC-Welt erfahren können.  Wer
eine eigene Objektmodulbibliothek erstellen kann, der kann eigentlich
auch ein bißchen Make-Syntax kennen, um den nötigen Macro dafür mit
der Hand einzutragen.

von Christoph Budelmann (Gast)


Lesenswert?

Wo könnte ich mir als Anfänger die make-Grundlagen denn ganz gut
einverleiben (speziellere Erklärungen zur Syntax, Tutorials, etc.)?

von Jörg Wunsch (Gast)


Lesenswert?

Nun, Eric Weddington empfiehlt allemal die ersten Kapitel aus dem GNU
Make Manual.  Ansonsten, hast Du schon mal eine Internetsuche bemüht?
Wenn ich "gnu make tutorial" ins Google eintippe, scheint mir schon
der zweite Link ein guter Treffer zu sein...

von Matthias Reiter (Gast)


Lesenswert?

Mit amüsanter Einführung und auf Deutsch:

http://rfhs8012.fh-regensburg.de/~opel/docs/makefiles.php

von Jörg Wunsch (Gast)


Lesenswert?

Vielleicht sollte ja mal jemand im Wiki ein bißchen über Make schreiben
und dabei obige URL referenzieren?

von Jörg Wunsch (Gast)


Lesenswert?

Ja, das Teil sieht mir wirklich gut aus.  Das Einzige, was mir so
nicht gefällt ist, daß der GNUismus

%.foo : %.bar
  Kommando, um *.bar in *.foo zu wandeln

gepredigt wird, wo der make-Standard-Konstrukt

.SUFFIXES: .bar .foo
.bar.foo:
  Kommando, um *.bar in *.foo zu wandeln

vollauf genügen würde (letzteres ist eine sogenannte `inference
rule').

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.