32
Praktikum: Numerik partieller Differentialgleichungen I Mario Ohlberger, Martin Drohmann, Michael Schaefer 07/04/2011 wissen leben WWU Münster WESTFÄLISCHE WILHELMS-UNIVERSITÄT MÜNSTER

Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

Praktikum: Numerik partiellerDifferentialgleichungen I

Mario Ohlberger,Martin Drohmann,Michael Schaefer

07/04/2011wissen lebenWWU Münster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER

Page 2: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 2 /24

Part I

Grundlegende Software-Werkzeuge zumProgrammieren mit C++ unter Linux

I Linux/BashI g++I doxygenI make

,,

Prof. Dr. Mario Ohlberger

Page 3: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 3 /24

Linux/Bash

,,

Prof. Dr. Mario Ohlberger

Page 4: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 4 /24

Remote-Verbindung mit Uni-Rechnern

sshMit der secure shell auf einem Uni-Rechner einloggen:

> ssh [email protected]

Mögliche Werte für rechnername sind beispielsweiseI schafXX, wobei XX eine zweistellige Zahl ist.I euroshopper

I lockheed

,,

Prof. Dr. Mario Ohlberger

Page 5: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 5 /24

Dateien und VerzeichnisseUnter Linux ist alles eine Datei.

Die wichtigsten Befehle:I cd - wechselt das VerzeichnisI ls - zeigt Verzeichnisinhalt anI pwd - aktuelles Verzeichnis

I mkdir - erstellt neues VerzeichnisI cp - kopiert DateienI rm - löscht Dateien

spezielle Verzeichnisse

I / root - Verzeichnis,I . aktuelles Verzeichnis,I .. übergeordnetes Verzeichnis,I ~ Home-Verzeichnis

,,

Prof. Dr. Mario Ohlberger

Page 6: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 6 /24

Verzeichnisse auf Uni-Rechnern

/u/benutzername≡ ~/ Home-Verzeichnis, Zugriff nur für Nutzer,über Netzwerklaufwerk eingebunden, d.h.überall verfügbar

/tmp Verzeichnis für temporäre Dateien, kanngelöscht werden, Lese-/Shreibzugriff für alle,auf lokaler Festplatte

/usr Verzeichnis mit Programmen/Bibliothekenfür alle Nutzer

/usr/bin Programme (z.B. firefox)/usr/lib Bibliotheken (was das ist kommt später)

/usr/share Dateien, die von mehreren Programmen ver-wendet werden. (z.B. Icons)

,,

Prof. Dr. Mario Ohlberger

Page 7: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 6 /24

Verzeichnisse auf Uni-Rechnern

/u/benutzername≡ ~/ Home-Verzeichnis, Zugriff nur für Nutzer,über Netzwerklaufwerk eingebunden, d.h.überall verfügbar

/tmp Verzeichnis für temporäre Dateien, kanngelöscht werden, Lese-/Shreibzugriff für alle,auf lokaler Festplatte

/usr Verzeichnis mit Programmen/Bibliothekenfür alle Nutzer

/usr/bin Programme (z.B. firefox)/usr/lib Bibliotheken (was das ist kommt später)

/usr/share Dateien, die von mehreren Programmen ver-wendet werden. (z.B. Icons)

,,

Prof. Dr. Mario Ohlberger

Page 8: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 7 /24

Programme. . .

I haben das Executable-Flag (x) gesetzt:

Exkurs: Dateisystem-Rechte

I Read(r), Write(w), Executable(x) können für user, group oder othergesetzt werden

I Ansehen mit ls -lI Ändern der Rechte mit chmod (z.B. chmod ug+rw datei gewährt user

und group Lese-/ und Schreibrechte)

I können ausgeführt werden, falls sie in PATH Verzeichnis liegen, odermit vollständigem Pfad aufgerufen werden. (/bin/ls, ./ls)

I können mit Ctrl-C abgebrochen werden!!!

,,

Prof. Dr. Mario Ohlberger

Page 9: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 8 /24

Was ist ein PATH-Verzeichnis?

Exkurs: Umgebungsvariablen

I Definition jederzeit mit

export VARNAME=WERT

I Alle Programme, die aktueller Umgebung gestartet werden, habenZugriff auf U-Variablen.

I env zeigt alle U-Variablen der aktuellen Umgebung an. env angezeigtwerden.

I Zugriff auf Wert erfolgt mit $VARNAME (Beispiel: echo $PATH)I Gültigkeit nur für aktuelle Session. Variablen, die jedesmal gültig

sein sollen, können in die Datei ~/.bashrc geschrieben werden.I Mit source datei können Definitionen in der Datei datei in die

aktuelle Umgebung geladen werden (Beispiel: source ~/.bashrc),,

Prof. Dr. Mario Ohlberger

Page 10: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 9 /24

Was ist ein PATH-Verzeichnis?

I Die PATH Variable enthält durch Doppelpunkte getrennteVerzeichnisse, in denen nach ausführbaren Programmen gesuchtwird. Beispiel:/bin:/usr/bin/:/usr/local/bin:/opt/matlab/bin

I Um ein Verzeichnis hinzuzufügen:

export PATH=$PATH:/u/mdroh_01/bin

I Es gibt ähnliche Variablen, wie z.B. LD_LIBRARY_PATH fürBibliothekspfade.

,,

Prof. Dr. Mario Ohlberger

Page 11: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 10 /24

Dateien finden

locate Sucht schnell auf dem ganzen Rechner nach Dateina-men in einer Datenbank, (nicht immer aktuell)

find Durchsucht das aktuelle Verzeichnis nach Dateien(langsamer)

grep Durchsucht Dateien nach Zeichenketten (sehrlangsam)

,,

Prof. Dr. Mario Ohlberger

Page 12: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 11 /24

Globbing

Dateinamenerweiterung durch spezielle Zeichen:* entspricht einer beliebigen Zeichenkette. (Beispiel:

*.cc entspricht allen Dateinamen die auf .cc en-den).

? entspricht einem beliebigen Zeichen (Beispiel:test?.cc entspricht den Dateien test1.cc,test2.cc, testd.cc, . . . )

prefix{a,b}suffix wird ersetzt durchprefixasuffix prefixbsuffix. (Beispiel:cp test.cc{,.bak} kopiert die Datei test.cc

und schreibt Kopie in test.cc.bak)

,,

Prof. Dr. Mario Ohlberger

Page 13: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 12 /24

Warum nicht einfach ein Dateimanager?

Gegenbeispiel I

find . | grep old | xargs sed -i'' -e 's/old/very old/'

ersetzt in allen Dateien im aktuellen Verzeichnis, die “old” im Namenhaben, die Zeichenkette “old” durch “very old”.

Gegenbeispiel II

for i in *.eps; do convert $i ${i/eps/pdf}; done

konvertiert alle eps Grafiken im aktuellen Verzeichnis in pdf Grafiken.

,,

Prof. Dr. Mario Ohlberger

Page 14: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 13 /24

Weiterführende Informationen

I Manual-Pages z.B. man bash

I http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

Zwei Programme für den nächsten AbschnittI wget lädt eine Webseite/Datei aus dem Internet herunterI tar entpackt oder erstellt Tar-Archive

I tar xzf archiv.tar.gz entpackt ein ArchivI tar czf archiv.tar.gz dateiliste erstellt ein Archiv mit Dateien

in dateiliste

,,

Prof. Dr. Mario Ohlberger

Page 15: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 14 /24

g++

,,

Prof. Dr. Mario Ohlberger

Page 16: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 15 /24

Vorbereitungen

1. Erstelle ein Verzeichnis ~/praktikum und wechsle in dieses.

2. Hole das Archiv files0.tar.gz von der Webseitewget $PRAKTHP/files0.tar.gz

3. Entpacke dieses Archiv: tar xzf files0.tar.gz

4. Lade ebenso das Skript install_dune_in_tmp.sh von derHomepage herunter.

,,

Prof. Dr. Mario Ohlberger

Page 17: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 16 /24

Kompilieren eines ersten Programms1. Erstelle eine Datei example.cc mit folgendem Inhalt:

example.cc

#include <iostream >

void main (int argc , const char ** argv)

{

std::cout << "Hello World!" << std::endl;

}

2. Kompiliere eine Objektdatei example.o mitg++ -c -o example.o example.cc. (Kompilieren ≡ Übersetzen inMaschinencode)

3. Erstelle eine ausführbare Datei mit g++ -o example example.o.,,

Prof. Dr. Mario Ohlberger

Page 18: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 17 /24

Test

example.cc

#include <iostream >

void main (int argc ,

const char ** argv)

{

std::cout

<< "Hello World!"

<< std::endl;

}

I Header files (hier:iostream)

I Entry point: mainmethod

I Argumentanzahlund Argumentliste

I Textausgabe undZeilenumbruch

,,

Prof. Dr. Mario Ohlberger

Page 19: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 17 /24

Test

example.cc

#include <iostream >

void main (int argc ,

const char ** argv)

{

std::cout

<< "Hello World!"

<< std::endl;

}

I Header files (hier:iostream)

I Entry point: mainmethod

I Argumentanzahlund Argumentliste

I Textausgabe undZeilenumbruch

,,

Prof. Dr. Mario Ohlberger

Page 20: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 17 /24

Test

example.cc

#include <iostream >

void main (int argc ,

const char ** argv)

{

std::cout

<< "Hello World!"

<< std::endl;

}

I Header files (hier:iostream)

I Entry point: mainmethod

I Argumentanzahlund Argumentliste

I Textausgabe undZeilenumbruch

,,

Prof. Dr. Mario Ohlberger

Page 21: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 17 /24

Test

example.cc

#include <iostream >

void main (int argc ,

const char ** argv)

{

std::cout

<< "Hello World!"

<< std::endl;

}

I Header files (hier:iostream)

I Entry point: mainmethod

I Argumentanzahlund Argumentliste

I Textausgabe undZeilenumbruch

,,

Prof. Dr. Mario Ohlberger

Page 22: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 18 /24

Aufgabe: Kompiliere gridtest_template.cc

I Kompilieren mitg++ -c -o gridtest.o gridtest_template.cc -I./include

I Linken mit g++ -o gridtest gridtest.o -L./lib -lmygrid

,,

Prof. Dr. Mario Ohlberger

Page 23: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 18 /24

Aufgabe: Kompiliere gridtest_template.cc

I Kompilieren mitg++ -c -o gridtest.o gridtest_template.cc -I./include

I Linken mit g++ -o gridtest gridtest.o -L./lib -lmygrid

,,

Prof. Dr. Mario Ohlberger

Page 24: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 18 /24

Aufgabe: Kompiliere gridtest_template.cc

I Kompilieren mitg++ -c -o gridtest.o gridtest_template.cc -I./include

I Linken mit g++ -o gridtest gridtest.o -L./lib -lmygrid

,,

Prof. Dr. Mario Ohlberger

Page 25: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 19 /24

Bibliotheken

I . . . enthalten Programmcode, der von vielen Programmenwiederverwendet wird. Man will nicht jedes Mal das Rad neuerfinden!

I . . . können entweder alsI Header-Bibliotheken vorliegen (Beispiel: Dune) oderI als vorkompilierte Programmpakete (Beispiel: OpenGL, Qt, mygrid, . . . )

I Für den ersten Fall muss nur der Pfad zu den Header-Dateienangegeben werden (Option -I), der Code wird jedesmal neuübersetzt.

I Im vorkompilierten Fall, muss zusätzlich der Pfad zumBibliotheksarchiv (libNAME.a oder libNAME.so) in der Linker-Phaseangegeben werden.

,,

Prof. Dr. Mario Ohlberger

Page 26: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 19 /24

Bibliotheken

I . . . enthalten Programmcode, der von vielen Programmenwiederverwendet wird. Man will nicht jedes Mal das Rad neuerfinden!

I . . . können entweder alsI Header-Bibliotheken vorliegen (Beispiel: Dune) oderI als vorkompilierte Programmpakete (Beispiel: OpenGL, Qt, mygrid, . . . )

I Für den ersten Fall muss nur der Pfad zu den Header-Dateienangegeben werden (Option -I), der Code wird jedesmal neuübersetzt.

I Im vorkompilierten Fall, muss zusätzlich der Pfad zumBibliotheksarchiv (libNAME.a oder libNAME.so) in der Linker-Phaseangegeben werden.

,,

Prof. Dr. Mario Ohlberger

Page 27: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 20 /24

doxygen

,,

Prof. Dr. Mario Ohlberger

Page 28: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 21 /24

Dokumentation von Bibliotheken

Um Funktionen wiederverwenden zu können, müssen diese dokumentiertwerden. doxygen erstellt automatische Dokumentationen aus demQuelltext. (Siehe Kommentarzeilen in lib/mygrid.cc)

Erstelle die Dokumentation für mygrid mit

doxygen Doxyfile

und öffne das Resultat in einem Browser

firefox doc/html/index.html

,,

Prof. Dr. Mario Ohlberger

Page 29: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 22 /24

make

,,

Prof. Dr. Mario Ohlberger

Page 30: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 23 /24

Automatisieren des Build-Prozesses mit make

Mittlerweile müssen wir einige (schwer zu merkende) Befehle ausführen:

g++ -c -o gridtest.o gridtest_template.cc -I./include

g++ -o gridtes gridtest.o -L./lib -lmygrid

doxygen Doxyfile

Dies kann mit Makefiles automatisiert werden: make all, make doc.

,,

Prof. Dr. Mario Ohlberger

Page 31: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 23 /24

Automatisieren des Build-Prozesses mit make

Mittlerweile müssen wir einige (schwer zu merkende) Befehle ausführen:

g++ -c -o gridtest.o gridtest_template.cc -I./include

g++ -o gridtes gridtest.o -L./lib -lmygrid

doxygen Doxyfile

Dies kann mit Makefiles automatisiert werden: make all, make doc.

,,

Prof. Dr. Mario Ohlberger

Page 32: Praktikum: Numerik partieller Differentialgleichungen I · prefix{a,b}suffix wird ersetzt durch prefixasuffix prefixbsuffix . (Beispiel: cp test.cc{,.bak} kopiert die Datei test.cc

wis

sen

lebe

nW

WU

Mün

ster

WESTFÄLISCHEWILHELMS-UNIVERSITÄTMÜNSTER 24 /24

Part II

Sehr kurze Einführung/Wiederholung vonC++-Konzepten

An infinite number of monkeys typing into GNU emacs wouldnever make a good program.

— Linus Torvalds

,,

Prof. Dr. Mario Ohlberger