Re: Makefile für Anfänger (viele Dateien compilieren/linken)?

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Alexander Holler (holler_at_ahsoftware.de)
Date: 07. Nov 2001


Hallo Mark,

--On Mittwoch, November 07, 2001 16:13:27 +0100 Mark Seuffert
<office_at_pirate.de> wrote:

> Muss ich jetzt:
> 1. Für jede Source/Objet-Datei ein target anlegen...
> ansonsten nimmt er "g++ -c" anstatt "gcc -Wall -ansi -c"?
> 2. Für "make all" alle Object-Dateien einzelnd aufzählen...
> oder geht das auch eleganter (Liste mit Dateien)?

Wenn du die Abhängigkeiten ignorierst reicht folgendes:
------------
CC=gcc
CFLAGS=-Wall -O3 -march=k6 -pipe
CXXFLAGS=$(CFLAGS)
LIBS=-lGL
LDFLAGS=-s
prg: prg1.o prg2.o
        $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) $^ -o $@
------------

Allerdings sollte man das so machen:

------------
wie oben
prg1.o: prg1.cpp prg1.hpp

prg2.o: prg1.c prg1.h
---------------------

Die entsprechenden Regeln zum compilieren von .c bzw. .cpp nach .o sind als
buildins vorhanden.

Wenn du z.B. eine einzige Datei mit anderen Parametern compilieren willst
machts du folgendens:

----
wie oben
prg3.o: prg3.cpp prg3.hpp
	$(CC) $(CFLAGS) -pthread  -c $< -o $@
----

möchtest du eigene Endungen benutzen kannst du z.B. folgendes nehmen um aus .meinc ein .o zu machen: ---- .o.meinc: $(CC) $(CFLAGS) -c $< -o $@ ----

Das sollte fürs erste genügen.

Gruß,

Alexander


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET