Eclipse Auslagerung redundanter Code

Gast #4936170
Hallo zusammen,

ich bin beruflich reiner Hardware Mensch und programmiere zuhause 
gelegentlich verschiedene µC in C.
Als Entwicklungsumgebung nutze ich Eclipse.

Nun habe ich mehrere Makefile Projekte in meinem Eclipse Workspace.
Jedes Projekt beinhaltet alle Quellen die es zum bauen benötigt.
Da viele Quellen identisch sind (uart.c, uart.h) würde ich diese nun 
gerne auslagern damit ich Änderungen nicht immer in allen Projekten 
durchführen muss.

Am liebsten wäre es mir den Code in ein extra Verzeichnis zu kopieren 
und dieses Verzeichnis dann in jedem Projekt mit einzubinden.
Allerdings will ich die Dateien ja auch im Eclipse einbinden damit ich 
sie editieren kann.

Nun bin ich mit den Informationen zu shared oder static librarys einfach 
überfordert.

Muss ich mich da durchbeißen und sowas benutzen oder gibt es noch 
einfachere Möglichkeiten ?

Gruß
#4936187
Mach dir doch einfach einen Unterordner mit einem eigenen Makefile für 
die Dinge die redundant sind und das Makefile bindest du dann jeweils in 
den Makefiles der anderen Projekte ein. Editieren kannst du die Dateien 
doch trotzdem, auch wenn sie in einem eigenen Unterordner/Projekt liegen 
oder sehe ich da irgendetwas nicht?
#4936302
Ich hab mich mit dem Problem auch herum geschlagen.
Mein erster Ansatz war natürlich auch ein AVR-Library zu bauen, was aber 
nicht praktikabel ist, da man damit i.d.R. auch Code für einen 
bestimmtenm µC bei einer bestimmten Taktfrequenz generiert.

Ich hab das jetzt so gelöst, daß ich mir manuell innerhalb des 
Projekt-Ordner einen symbolischen Link auf das Verz. mit meiner pers. 
Funktionssammlung anlege.
Gast #4936326
Die sinnvollste lösung wäre die libraries als eigenes projekt zu pflegen 
und per git zu versionieren. Das Projekt liegt dann irgendwo auf deinem 
PC.

In deinen anderen Projekten klonst du dann dieses Repository in einen 
Unterordner. Und ja...du willst es früher oder später nurnoch manuell 
updaten. Den Fehler mit einem shared Ordner für sowas macht am Anfang 
jeder mal ;)
Beitrag #4936356 wurde von einem Moderator gelöscht.
#4936358
Harry L. schrieb:
> Ich hab das jetzt so gelöst, daß ich mir manuell innerhalb des
> Projekt-Ordner einen symbolischen Link auf das Verz. mit meiner pers.
> Funktionssammlung anlege.

Falls du es nicht so gemacht hast, das geht auch innerhalb von Eclipse, 
diese Links anlegen (auch unter Windows ;-) ).
Man muss das nicht mit dem OS-Filenamager machen.
#4937183
TestX schrieb:
> Die sinnvollste lösung wäre die libraries als eigenes projekt zu pflegen
> und per git zu versionieren. Das Projekt liegt dann irgendwo auf deinem
> PC.
>
> In deinen anderen Projekten klonst du dann dieses Repository in einen
> Unterordner. Und ja...du willst es früher oder später nurnoch manuell
> updaten. Den Fehler mit einem shared Ordner für sowas macht am Anfang
> jeder mal ;)

Ja, das wäre auch noch mein Vorschlag gewesen, also Git Submodule oder 
Git Subtree. Aber wenn es doch erstmal noch so funktioniert, dann würde 
ich es auch so belassen ohne es unnötig komplizierter zu machen. Der TO 
wird dann irgendwann schon merken wenn er das gerne versioniert hätte.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 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.