makefile vs. AVR Eclipse vs. Pfadangabe

Gast #2639969
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
#2639985
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
Gast #2640015
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren