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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.