Forum: Compiler & IDEs WinAVR MFile SRC =.


von ted (Gast)


Lesenswert?

Hallo Zusammen,
bin grade am Verzweifeln. Ich habe ein Projekt mit mehreren .c und .h 
Files.
Eine dieser Files, möcht ich in einem separatem Verzeichnis sammeln und 
später für andere Projekte nutzen. Eine Art Bibliotek.

Im Makefile, muss ich ja alle .c Files in die SRC Zeile eintragen.
Für mein main.c wir ja $(TARGET).c  benutzt, macht es ja auch 
automatisch mit MFile. Doch wie ist die genaue Syntax für .c Files in 
einem anderen Verzeichniss. Gebe ich den Pfad in der Art an 
C:\WinAVR\Wunschverzeichniss\test.c dann bekomme ich Fehlermeldungen wie 
"multiple target patterns"

Kann mir da jemand helfen?

: Verschoben durch Moderator
von Stefan B. (stefan) Benutzerseite


Lesenswert?

Es wäre einfacher zu antworten, wenn man deine Verzeichnisstruktur 
kennen würde.

Für den Fall dass du im aktuellen Verzeichnis mit main.c und Makefile 
ein Verzeichnis Wunschverzeichnis hast und darin ein test.c:
1
TARGET = main
2
SRC = $(TARGET).c Wunschverzeichnis/test.c
usw.

Du kannst auch mit ../ im Verzeichnisbaum runterklettern in Richtung 
Hauptverzeichnis und dann auf andere Äste klettern
1
TARGET = main
2
SRC = $(TARGET).c ../../irgendwo/Wunschverzeichnis/test.c
usw.

Auch auf andere Bäume auf anderen Laufwerken müsstest du kommen können. 
Das habe ich aber nicht getestet.
1
TARGET = main
2
SRC = $(TARGET).c c:/WinAVR/Wunschverzeichnis/test.c
usw.

Wenn im Wunschverzeichnis auch Includedateien stehen, die z.B. von 
test.c oder main.c benutzt werden, dann sollte dieser Pfad in 
EXTRAINCDIRS = stehen, wenn du das Makefile nach Beispiel Makefile 
benutzt.

Wenn im Pfad Leerzeichen sind, dann die Argumente in "" klammern, weil 
das Leerzeichen ja ein reserviertes Trennzeichen für die Argumente in 
den ... = ... Zeilen ist.

von ted (Gast)


Lesenswert?

Hallo Stefan,
danke für die Tipps!
Ich habe es jetzt so gemacht:

Deine erste Variante, sprich, die "Bibliotek" als Ordner in das 
Projektverzeichniss kopieren und dann werkeln.

Ich habe hier im Forum ein gutes Argument gegen mein ursprüngliches 
Vorhaben, gelesen. Denn wenn man etwas in seiner Bibliotek ändert, 
entsteht evtl. wo anders ein Problem. Daher die "Refernzbibliotek" 
kopieren und die Kopie im Projekt ändern.

So, und weiter gehts :-)


Gruß
Ted

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Das "Gegenargument": Du erzeugst so lauter lokale Kopien deiner 
Bibliothek und in irgendeiner hast du den Bugfix vergessen den du in der 
anderen vor Wochen gemacht hast. Dann suchst du dich dirmelig.

Besser ist eine Versionsverwaltung bei der du 1. Kommentare zu 
Änderungen eingeben kannst (musst) und 2. problemlos einen älteren Stand 
reproduzierar entnehmen kannst.

Ein weiterer Tipp: Speichere und Ändere nichts in dem Verzeichnis der 
Toolchain (WinAVR). Bei einem Update kannst du dann die Versionen 
einfach austauschen ohne auf Zusätze oder Änderungen Rücksicht nehmen zu 
müssen.

Idealerweise speicherst du die Toolchain auch in die Versionsverwaltung 
rein und kannst so komplette Projekte restaurieren.

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.