Forum: Mikrocontroller und Digitale Elektronik Eclipse Auslagerung redundanter Code


von Jens (Gast)


Lesenswert?

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ß

von Christopher J. (christopher_j23)


Lesenswert?

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?

von Jens (Gast)


Lesenswert?

Mit den Makefiles habe ich so meine Probleme davon verstehe ich noch so 
gut wie gar nichts.

Ich habe hier etwas Interessantes gefunden, ich glaube das ist das was 
ich suche
https://mcuoneclipse.com/2014/08/15/link-to-files-and-folders-in-eclipse/

von Harry L. (mysth)


Lesenswert?

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.

von TestX (Gast)


Lesenswert?

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 vom Autor gelöscht.
von 900ss (900ss)


Lesenswert?

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.

von Christopher J. (christopher_j23)


Lesenswert?

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.

von 900ss (900ss)


Lesenswert?

Christopher J. schrieb:
> die libraries als eigenes projekt zu pflegen
> und per git zu versionieren

Ist ein wenig von Projekt abhängig finde ich. Durchaus sinnvoll und gut, 
manchmal aber zuviel unnötiger Aufwand.

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.