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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.