På sidan hittar man följande exempel:
Kod: Markera allt
CFILES = main.c work.c # Här definierar vi upp variabler
HFILES = work.h # som innehåller de filer som
OFILES = main.o work.o # ingår i programmet.
CC = cc # Genom att lägga namnet på c-kompilatorn i en
# variabel kan man lätt byta kompilator.
CCFLAGS = -O # Anger vilka flaggor som skall skickas
# till kompilatorn
# Make har inbyggda suffixregler för bl a c-filer.
prog : $(OFILES)
$(CC) $(CCFLAGS) -o prog $(OFILES)
main.o: main.c work.h
work.o: work.c work.h
clean: rm $(OFILES)
printfiles: $(CFILES) $(HFILES)
print $?
touch printfiles
Kod: Markera allt
CXXFILES = file1.c++ file2.c++
HFILES = coordin.h
OFILES = file1.o file2.o
.SUFFIXES: .o .c++
.c++.o:
g++ -c $*.c++
CXX = g++
CXXFLAGS = -O
RectToPolar: $(OFILES)
$(CXX) $(CXXFLAGS) -o RectToPolar $(OFILES)
file1.o: file1.c++ coordin.h
file2.o: file2.c++ coordin.h
clean:
rm $(OFILES) *~
printfiles: $(CXXFILES) $(HFILES)
print $?
touch printfiles
Var var jag nu? Jo, min Makefile fungerar allt som den ska när jag kompilerar; programmet kompileras som det ska och det hela fungerar perfekt i alla sin simpelhet.
Dock fungerar inte de sista raderna, de om printfiles. Jag får följande felmeddelande när jag kör make printfiles i en terminal (givetvis står jag i rätt mapp och så vidare):
Kod: Markera allt
Error: no "print" mailcap rules found for type "text/x-c++src"
make: *** [printfiles] Fel 3
Någon som ser något uppenbart fel? Jag är ju nybörjare så jag skulle nog inte se felet om det så bländade mig…