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

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Mathias Waack (mathias_at_atoll-net.de)
Date: 07. Nov 2001


On Wednesday 07 November 2001 16:13, Mark Seuffert wrote:
> Muss ich jetzt:
> 1. Für jede Source/Objet-Datei ein target anlegen...
> ansonsten nimmt er "g++ -c" anstatt "gcc -Wall -ansi -c"?

Du willst doch auch g++ oder warum heissen die Dateien .cpp? Die
Flags werden ueber die Variable CXXFLAGS gesetzt, d.h. ein
        CXXFLAGS = -Wall -ansi
macht dann ein "g++ -Wall -ansi ..."

> 2. Für "make all" alle Object-Dateien einzelnd aufzählen...
> oder geht das auch eleganter (Liste mit Dateien)?

Ja sicher, man kann die Ausgabe eines Befehls nehmen. Ich persoenlich mag das
aber nicht. Die autotools halten sich etwa an folgendes Schema:

CXX =
CXXFLAGS =
LDFLAGS =
LIBS =
CXXLINK = g++ -o $@ $(LDFLAGS)
...
TARGETS = target1 target2 ...
target1_OBJECTS = file1.o file2.o ...
...
all: $(TARGETS)

target1: $(target1_OBJECTS)
        $(CXXLINK) $(target1_OBJECTS) $(LIBS)

clean:
        -rm -f (target1_OBJECTS) ...

Das gefaellt mir eigentlich ganz gut. Das file.o von file.cpp abhaengt, weiss
das make selber, dass muss man ihm nicht extra sagen.

Mathias


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

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