Forum: Mikrocontroller und Digitale Elektronik makefile vs. AVR Eclipse vs. Pfadangabe


von Karlo (Gast)


Lesenswert?

Hallo,

ich hocke derzeit über einem Projekt dass ich zwecks der 
Übersichtlichkeit in relativ viele Ordner sowie Source- und 
Headerdateien aufteile.

Programmieren tu ich im aktuellen Eclipse mit AVR PlugIn (ATmega1284P).

Nun frage ich mich wie ich dem Compiler (avr-gcc) am besten die 
Includepfade bekannt mache.

Am schönsten wär natürlich sowas:
1
#include "myHeader.h"
, am besten noch egal in welchem Verzeichniss ich mich momentan befinde.

Nötig ist aber meiner Ordnerstruktur, je nachdem wo ich gerade bin zB
1
#include "../../myFolder/oneMoreFolder/myHeader.h"

Das ist natürlich Murks.

Eclipse (und das AVR PlugIn) bieten ja das nette Feature, Pfade 
eintragen zu können an denen der Compiler nach Headerdateien sucht.

Eigentlich sehr komfortabel, da ich in jede Source Datei an jeder 
beliebigen Stelle im Verzeichnissbaum schreiben könnte
1
#include "myHeader.h"

Eigentlich...

Ich habe schon mal so ein Projekt geerbt, allerdings nur das Dateisystem 
mit sämtlichen Ordnern sowie Source- und Headerdateien.
Ohne den Eclipse-Metaordner ist so ein Projekt dann nicht mehr 
kompilierbar, es müssen entweder die Includes im Quelltext ALLE 
angepasst werden oder eben alle Ordner Eclipse erneut bekannt gemacht 
werden.

Sowas will ich der Nachwelt, oder wer immer mal meine Software 
kompilieren will ersparen.

Sollte ich also doch auf oben genanntes Beispiel mit der kompletten 
Pfadangabe ausweichen? Ist doch recht unschön oder?

Am schönsten wäre natürlich ein Makefile.
Aber da müsste ich mich erst einige Zeit damit beschäftigen.
Und außerdem funkt dass doch nicht mit dem AVR PlugIn zusammen, oder?

D.h. ich bräuchte noch jeweils ein Skript/Batchfile zum flashen (Aufruf 
von avrdude) und kompilieren (Aufruf von make).

Welche dieser 3 Möglichkeiten, ein Projekt zu organisieren würdet ihr 
mir empfehlen?

Auf eine spannende Diskussion :-)

Viele Grüße,
Karlo

von Oliver J. (skriptkiddy)


Lesenswert?

Karlo schrieb:
> Und außerdem funkt dass doch nicht mit dem AVR PlugIn zusammen, oder?
Doch. Du musst aber Folgendes tun:

1. Du legst das Makefile in das Projekt Verzeichnis.

2. Bei Preject Properties -> "C/C++ Build" die Haken bei
   "Use default build command" und "Generate Makefile automatically"
   entfernen

Mach ich bei allen C-Projekten so.


Gruß Oliver

Karlo schrieb:
> Welche dieser 3 Möglichkeiten, ein Projekt zu organisieren würdet ihr
> mir empfehlen?
Makefile. Damit ist da Projekt IDE- und OS-unabhängig.

Gruß Oliver

von Oliver (Gast)


Lesenswert?

Karlo schrieb:
> Nötig ist aber meiner Ordnerstruktur, je nachdem wo ich gerade bin >zB#include 
"../../myFolder/oneMoreFolder/myHeader.h"
> Das ist natürlich Murks.

Nö. Wenn die Ordnerstruktur deines Projektes so ist, und auch so bei 
anderen Nutzern sein wird, dann kann man das so machen.

Oliver

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.