mikrocontroller.net

Forum: PC-Programmierung Makefile anpassen


Autor: Andreas Wilhelm (avedo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen!

Ich habe vor einiger Zeit ein kleines Makefile geschrieben, dass mir 
mein Projekt erstellt. Nun stört es mich, dass die Objekt- und 
Source-Dateien alle zusammen in einem Ordner liegen.

Daher würde ich gerne im selben Ordner, in dem das Makefile liegt zwei 
Unterordner haben, von denen einer "source" heißt und die Quelldateien 
enthält und der andere "build" heißt und die Objekt-Dateien enthält. Das 
ausführbare Programm, soll jedoch wieder auf der Ebene des Makefiles 
liegen.

Wie muss ich dafür das nachfolgende Makefile anpassen?

------------------------------------------------

CC      = /usr/bin/g++
CFLAGS  = -Wall -g -D_REENTRANT
LDFLAGS = ``

OBJ = Class1.o Class2.o Class3.o Class4.o Main.o

project: $(OBJ)
  $(CC) $(CFLAGS) -o project $(OBJ) $(LDFLAGS)

%.o: %.c
  $(CC) $(CFLAGS) -c $<

------------------------------------------------

Ich freue mich auf eure Antworten.

Liebe Grüße,

Andreas

PS: An Links dieses Thema betreffend wäre ich auch interessiert.

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie muss ich dafür das nachfolgende Makefile anpassen?
CC      = /usr/bin/g++
CFLAGS  = -Wall -g -D_REENTRANT
LDFLAGS = 

SOURCE  = source
BUILD   = build

OBJ = Class1.o Class2.o Class3.o Class4.o Main.o

project: $(OBJ:%=$(BUILD)/%)
  $(CC) $(CFLAGS) -o project $(OBJ:%=$(BUILD)/%) $(LDFLAGS)

$(BUILD)/%.o: $(SOURCE)/%.cpp
  $(CC) $(CFLAGS) -c -o $@ $<

Ich habe das .c in .cpp umbenannt, da es sich bei den Quelldateien ja
wohl um C++ handelt. Hat es mit dem `` bei LDFLAGS eine besondere
Bewandtnis, oder soll die Variable einfach nur leer bleiben? Wenn ja,
dann sollte da auch nichts stehen.

> PS: An Links dieses Thema betreffend wäre ich auch interessiert.

Auch wenn's jetzt blöd klingt: Aber es lohnt sich wirklich, das
GNU-Make-Manual einmal intensiv durchzuarbeiten:

  http://www.gnu.org/software/make/manual/make.html

Das Tool kann noch viel mehr, als man gemeinhin ahnt.

Autor: Andreas Wilhelm (avedo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Hilfe. werde auf jeden Fall einen Blick in das Manual 
werfen.

Gruß,

Andreas

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.