www.mikrocontroller.net

Forum: Compiler & IDEs makefile - eigene Libs einbinden


Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
wie stelle ich es an, viele unkompilierte Dateien
aus einem übergeordneten Ordner eizubinden.
Also ich möchte nicht jede .c Datei einzeln angeben.
Ich habe z.B einen Ordner namens USB, der nicht im Projektverzeichnis 
liegt, mit 20 .c Dateien. Diese sollen einzeln kompiliert und 
dazugelinkt werden.

danke!!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander wrote:
> Hi!
> wie stelle ich es an, viele unkompilierte Dateien
> aus einem übergeordneten Ordner eizubinden.
> Also ich möchte nicht jede .c Datei einzeln angeben.
> Ich habe z.B einen Ordner namens USB, der nicht im Projektverzeichnis
> liegt, mit 20 .c Dateien. Diese sollen einzeln kompiliert und
> dazugelinkt werden.

Der einfachste Weg dürfte wohl darin liegen, diese 20 *.c Dateien
einzeln zu kompilieren und die entstehenden *.o in eine Library
zu stellen und dann in deinen eigentlichen Projekten einfach nur
diese Library einzulinken.

Dazu brauchst du den 'Librarian'. Im gcc-Packet heist der 'ar'
(wie archiv)

Beschreibung von ar findest du im Web. Zb
http://www.gnu.org/software/binutils/manual/html_c...

Autor: Norgan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hängt etwas vom verwendeten Make Programm ab. Weiter hängt es davon 
ab, ob immer pauschal alle Dateien compiliert werden sollen, oder nur 
die benötigten.

Ich nehme mal GNU make an.

Wenn es nur die benötigten sein sollen, setze VPATH so, dass er das 
Verzeichnis mit dem Sourcecode enthält.

Wenn es immer alle C-Dateien in dem Verzeichnis sein sollen, dann bieten 
sich Wildcards an:
  MORE_SRCS = $(wildcard dir/*.c)
  MORE_OBJS = $(MORE_SRCS:.c=.o)
MORE_OBJS sollte dann noch irgendwo als Voraussetzung für das endgültige 
Target deklariert werden.

Autor: Günter -.. (guenter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander wrote:
> Hi!
> wie stelle ich es an, viele unkompilierte Dateien
> aus einem übergeordneten Ordner eizubinden.

Schau mal nach der Beschreibung von vpath bzw. VPATH. Damit kannst du 
make mitteilen wo es nach zusätzlichen Source- oder Header-Dateien 
suchen soll.

Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke!
werde es mal testen.
mfg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.