aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1/books/developers-handbook/tools/chapter.xml
diff options
context:
space:
mode:
Diffstat (limited to 'de_DE.ISO8859-1/books/developers-handbook/tools/chapter.xml')
-rw-r--r--de_DE.ISO8859-1/books/developers-handbook/tools/chapter.xml166
1 files changed, 64 insertions, 102 deletions
diff --git a/de_DE.ISO8859-1/books/developers-handbook/tools/chapter.xml b/de_DE.ISO8859-1/books/developers-handbook/tools/chapter.xml
index cf76487e17..70e0312a96 100644
--- a/de_DE.ISO8859-1/books/developers-handbook/tools/chapter.xml
+++ b/de_DE.ISO8859-1/books/developers-handbook/tools/chapter.xml
@@ -7,36 +7,21 @@
$FreeBSDde: de-docproj/books/developers-handbook/tools/chapter.xml,v 1.11 2011/05/12 17:36:17 bcr Exp $
basiert auf: 1.52
-->
-
-<chapter id="tools">
- <chapterinfo>
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="tools">
+ <info><title>Werkzeuge zur Programmierung</title>
<authorgroup>
- <author>
- <firstname>James</firstname>
- <surname>Raynard</surname>
- <contrib>Contributed by </contrib>
- </author>
- <author>
- <firstname>Murray</firstname>
- <surname>Stokely</surname>
- </author>
+ <author><personname><firstname>James</firstname><surname>Raynard</surname></personname><contrib>Contributed by </contrib></author>
+ <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname></author>
</authorgroup>
<authorgroup>
- <author>
- <firstname>Dirk</firstname>
- <surname>Arlt</surname>
- <contrib>Übersetzt von </contrib>
- </author>
- <author>
- <firstname>Fabian</firstname>
- <surname>Borschel</surname>
- </author>
+ <author><personname><firstname>Dirk</firstname><surname>Arlt</surname></personname><contrib>Übersetzt von </contrib></author>
+ <author><personname><firstname>Fabian</firstname><surname>Borschel</surname></personname></author>
</authorgroup>
- </chapterinfo>
+ </info>
- <title>Werkzeuge zur Programmierung</title>
+
- <sect1 id="tools-synopsis">
+ <sect1 xml:id="tools-synopsis">
<title>Überblick</title>
<para>Dieses Kapitel ist eine Einführung in die Benutzung
@@ -50,7 +35,7 @@
Sinnvolles darin finden.</para>
</sect1>
- <sect1 id="tools-intro">
+ <sect1 xml:id="tools-intro">
<title>Zusammenfassung</title>
<para>FreeBSD bietet eine exzellente Entwicklungsumgebung.
@@ -59,8 +44,7 @@
sich auch klassische &unix;-Werkzeuge wie <command>sed</command>
und <command>awk</command>. Sollte das nicht genug sein, finden sich
zahlreiche weitere Compiler und Interpreter in der Ports-Sammlung.
- Der folgende Abschnitt, <link
- linkend="tools-programming">Einführung in die Programmierung</link>,
+ Der folgende Abschnitt, <link linkend="tools-programming">Einführung in die Programmierung</link>,
zählt ein paar der verfügbaren Optionen auf. FreeBSD ist
kompatibel zu vielen Standards wie <acronym>&posix;</acronym>
und <acronym>ANSI</acronym> C, sowie zu seinem eigenen BSD Erbe. So
@@ -84,7 +68,7 @@
zu lernen vorausgesetzt!</para>
</sect1>
- <sect1 id="tools-programming">
+ <sect1 xml:id="tools-programming">
<title>Einführung in die Programmierung</title>
<para>Ein Programm ist eine Zusammenstellung von Anweisungen, die
@@ -149,9 +133,8 @@
populären interpretierten Sprachen.</para>
<para>Anleitungen wie man Anwendungen aus der Ports-Sammlung
- erhält und installiert können Sie dem Kapitel <ulink
- url="&url.books.handbook;/ports-using.html">Benutzen der
- Ports-Sammlung</ulink> aus dem FreeBSD Handbuch
+ erhält und installiert können Sie dem Kapitel <link xlink:href="&url.books.handbook;/ports-using.html">Benutzen der
+ Ports-Sammlung</link> aus dem FreeBSD Handbuch
entnehmen.</para>
<variablelist>
@@ -169,11 +152,9 @@
die Grundlage für Visual Basic.</para>
<para>Der Bywater Basic Interpreter findet sich in der
- Ports-Sammlung unter <filename
- role="package">lang/bwbasic</filename> und Phil
+ Ports-Sammlung unter <package>lang/bwbasic</package> und Phil
Cockroft's Basic Interpreter (auch bekannt als Rabbit
- Basic) findet sich unter <filename
- role="package">lang/pbasic</filename>.</para>
+ Basic) findet sich unter <package>lang/pbasic</package>.</para>
</listitem>
</varlistentry>
@@ -198,15 +179,12 @@
<para>Zahlreiche Ausformungen von Lisp, die auf &unix;
Systemen laufen sind über die Ports-Sammlung
verfügbar. GNU Common Lisp befindet sich in
- <filename role="package">lang/gcl</filename>. CLISP von
- Bruno Haible und Michael Stoll ist in <filename
- role="package">lang/clisp</filename> zu finden. Für
+ <package>lang/gcl</package>. CLISP von
+ Bruno Haible und Michael Stoll ist in <package>lang/clisp</package> zu finden. Für
CMUCL, welches auch einen hoch-optimierten Compiler
enthält, oder einfachere Ausformungen wie SLisp,
das die meisten gängigen Lisp Konstrukte in wenigen
- hundert Zeilen C Code enthält sind in <filename
- role="package">lang/cmucl</filename> und <filename
- role="package">lang/slisp</filename> ebenfalls
+ hundert Zeilen C Code enthält sind in <package>lang/cmucl</package> und <package>lang/slisp</package> ebenfalls
enthalten.</para>
</listitem>
</varlistentry>
@@ -220,8 +198,7 @@
Wide Web Servern verwendet, um
<acronym>CGI</acronym>-Skripte zu schreiben.</para>
- <para>Perl ist in der Ports-Sammlung unter <filename
- role="package">lang/perl5.8</filename> für alle
+ <para>Perl ist in der Ports-Sammlung unter <package>lang/perl5.8</package> für alle
&os;-Versionen verfügbar, und wird im Basissystem
von 4.x als <command>/usr/bin/perl</command>
installiert.</para>
@@ -241,12 +218,9 @@
bietet.</para>
<para>Scheme ist in der Ports-Sammlung in Form des Elk
- Scheme Interpreters als <filename
- role="package">lang/elk</filename> verfügbar. Den
- MIT Scheme Interpreter findet man unter <filename
- role="package">lang/mit-scheme</filename>, und den SCM
- Scheme Interpreter unter <filename
- role="package">lang/scm</filename>.</para>
+ Scheme Interpreters als <package>lang/elk</package> verfügbar. Den
+ MIT Scheme Interpreter findet man unter <package>lang/mit-scheme</package>, und den SCM
+ Scheme Interpreter unter <package>lang/scm</package>.</para>
</listitem>
</varlistentry>
@@ -257,8 +231,7 @@
<para>Icon ist eine Hochsprache mit ausgereiften
Möglichkeiten zur Verarbeitung von Zeichenketten
und Strukturen. Die unter &os; verfügbare Version
- von Icon steht in der Ports-Sammlung unter <filename
- role="package">lang/icon</filename> zur
+ von Icon steht in der Ports-Sammlung unter <package>lang/icon</package> zur
Verfügung.</para>
</listitem>
</varlistentry>
@@ -276,8 +249,7 @@
Kinder einfach ist.</para>
<para>Die für &os; aktuellste, verfügbare
- Version findet man in der Ports-Sammlung unter <filename
- role="package">lang/logo</filename>.</para>
+ Version findet man in der Ports-Sammlung unter <package>lang/logo</package>.</para>
</listitem>
</varlistentry>
@@ -297,8 +269,7 @@
Programmiersprachen).</para>
<para>Die aktuellste Version von Python ist in der
- Ports-Sammlung unter <filename
- role="package">lang/python</filename>
+ Ports-Sammlung unter <package>lang/python</package>
verfügbar.</para>
</listitem>
</varlistentry>
@@ -314,8 +285,7 @@
komplexe Programme einfach zu entwickeln und zu pflegen,
populär.</para>
- <para>Ruby ist in der Ports-Sammlung unter <filename
- role="package">lang/ruby18</filename>
+ <para>Ruby ist in der Ports-Sammlung unter <package>lang/ruby18</package>
verfügbar.</para>
</listitem>
</varlistentry>
@@ -334,8 +304,7 @@
<para>Es sind mehrere Versionen von Tcl als Ports
für &os; verfügbar. Die aktuellste Version,
- Tcl 8.5, ist unter <filename
- role="package">lang/tcl85</filename>
+ Tcl 8.5, ist unter <package>lang/tcl85</package>
verfügbar.</para>
</listitem>
</varlistentry>
@@ -389,8 +358,7 @@
einsteigerfreundliche Programmiersprache dar. FreeBSD
beinhaltet im Basissystem keine Unterstützung für
Pascal, stellt jedoch über die Ports-Sammlung den
- Free Pascal Compiler unter <filename
- role="package">lang/fpc</filename> zur Verfügung.</para>
+ Free Pascal Compiler unter <package>lang/fpc</package> zur Verfügung.</para>
<para>Da der editier-kompilier-ausführ-debug-Kreislauf
unter Verwendung mehrerer Programme eher mühsam ist haben
@@ -398,16 +366,14 @@
Entwicklungsumgebungen (Integrated Development Environment;
auch kurz <acronym>IDE</acronym>) entwickelt. FreeBSD bietet
zwar im Basissystem keine IDE an, stellt jedoch über die
- Ports-Sammlung IDEs wie <filename
- role="package">devel/kdevelop</filename> oder
+ Ports-Sammlung IDEs wie <package>devel/kdevelop</package> oder
<application>Emacs</application> zur Verfügung, wobei
letztere weit verbreitet ist. Die Verwendung von
- <application>Emacs</application> als IDE wird unter <xref
- linkend="emacs"/> diskutiert.</para>
+ <application>Emacs</application> als IDE wird unter <xref linkend="emacs"/> diskutiert.</para>
</sect2>
</sect1>
- <sect1 id="tools-compiling">
+ <sect1 xml:id="tools-compiling">
<title>Kompilieren mit dem <command>cc</command></title>
<para>Dieser Abschnitt behandelt ausschließlich den GNU
@@ -544,8 +510,8 @@
</para>
<informalexample>
- <screen>&prompt.user; <userinput>cc foobar.c</userinput> <lineannotation>executable is <filename>a.out</filename></lineannotation>
-&prompt.user; <userinput>cc -o foobar foobar.c</userinput> <lineannotation>executable is <filename>foobar</filename></lineannotation>
+ <screen>&prompt.user; <userinput>cc foobar.c</userinput> <lineannotation>executable is a.out</lineannotation>
+&prompt.user; <userinput>cc -o foobar foobar.c</userinput> <lineannotation>executable is foobar</lineannotation>
</screen>
</informalexample>
</listitem>
@@ -733,7 +699,7 @@
müssen.</para>
<para>Angenommen eine Bibliothek heißt
- <filename>lib<replaceable>irgendwas</replaceable>.a</filename>,
+ <filename>libirgendwas.a</filename>,
dann müssen Sie dem <command>cc</command> als
Argument
<option>-l<replaceable>irgendwas</replaceable></option>
@@ -1021,8 +987,7 @@ int main() {
<answer>
<para>Verwenden Sie den <command>gdb</command>, um das
- Speicherabbild zu untersuchen (siehe <xref
- linkend="debugging"/>).</para>
+ Speicherabbild zu untersuchen (siehe <xref linkend="debugging"/>).</para>
</answer>
</qandaentry>
@@ -1160,7 +1125,7 @@ free(foo);
herauszufinden. Führen Sie
anschließend</para>
- <screen>&prompt.user; <userinput>kill -ABRT <replaceable>pid</replaceable></userinput>
+ <screen>&prompt.user; <userinput>kill -ABRT pid</userinput>
</screen>
<para>aus, wobei
@@ -1193,7 +1158,7 @@ free(foo);
</sect2>
</sect1>
- <sect1 id="tools-make">
+ <sect1 xml:id="tools-make">
<title>Make</title>
<sect2>
@@ -1333,24 +1298,24 @@ install:
<para>Wir können make sagen welches Ziel wir erzeugt haben
wollen, indem wir etwas wie folgt eingeben:</para>
- <screen>&prompt.user; <userinput>make <replaceable>target</replaceable></userinput></screen>
+ <screen>&prompt.user; <userinput>make target</userinput></screen>
<para><command>make</command> wird dann nur dieses Ziel
beachten und alle anderen ignorieren. Wenn wir zum Beispiel
<userinput>make foo</userinput> mit dem obigen makefile
eingeben, dann wird make das Ziel
- <maketarget>install</maketarget> ignorieren.</para>
+ <buildtarget>install</buildtarget> ignorieren.</para>
<para>Wenn wir nur <userinput>make</userinput> eingeben wird
make immer nur nach dem ersten Ziel suchen und danach mit dem
Suchen aufhören. Wenn wir hier also nur
<userinput>make</userinput> eingegeben hätten, würde
- es nur zu dem Ziel <maketarget>foo</maketarget> gehen,
+ es nur zu dem Ziel <buildtarget>foo</buildtarget> gehen,
gegebenenfalls <filename>foo</filename> neu kompilieren, und
danach einfach aufhören, ohne das Ziel
- <maketarget>install</maketarget> zu beachten.</para>
+ <buildtarget>install</buildtarget> zu beachten.</para>
- <para>Beachten Sie, daß das <maketarget>install</maketarget>-Ziel
+ <para>Beachten Sie, daß das <buildtarget>install</buildtarget>-Ziel
von nichts anderem abhängt! Dies bedeutet, daß der
Befehl in der nachfolgenden Zeile immer ausgeführt wird,
wenn wir dieses Ziel mittels <userinput>make
@@ -1591,7 +1556,7 @@ DISTFILES= scheme-microcode+dist-7.3-freebsd.tgz
</sect2>
</sect1>
- <sect1 id="debugging">
+ <sect1 xml:id="debugging">
<title>Debuggen</title>
<sect2>
@@ -1602,13 +1567,13 @@ DISTFILES= scheme-microcode+dist-7.3-freebsd.tgz
debugger</application>). Sie können Ihn durch die Eingabe
von</para>
- <screen>&prompt.user; <userinput>gdb <replaceable>progname</replaceable></userinput></screen>
+ <screen>&prompt.user; <userinput>gdb progname</userinput></screen>
<para>starten, wobei viele Leute ihn vorzugsweise
innerhalb von <application>Emacs</application> aufrufen. Sie
erreichen dies durch die Eingabe von:</para>
- <screen><userinput>M-x gdb RET <replaceable>progname</replaceable> RET</userinput></screen>
+ <screen><userinput>M-x gdb RET progname RET</userinput></screen>
<para>Die Verwendung eines Debuggers erlaubt Ihnen Ihr
Programm unter kontrollierteren Bedingungen ausführen zu
@@ -1631,8 +1596,7 @@ DISTFILES= scheme-microcode+dist-7.3-freebsd.tgz
<para>Falls Sie den textbasierten Kommandozeilen-Stil
abstoßend finden gibt es ein graphisches Front-End
- dafür (<filename
- role="package">devel/xxgdb</filename>) in der Ports-Sammlung.</para>
+ dafür (<package>devel/xxgdb</package>) in der Ports-Sammlung.</para>
<para>Dieser Abschnitt ist als Einführung in die
Verwendung des <command>gdb</command> gedacht und beinhaltet
@@ -1721,15 +1685,15 @@ GDB is free software and you are welcome to distribute copies of it
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc.
(gdb) <userinput>break main</userinput> <lineannotation>Skip the set-up code</lineannotation>
-Breakpoint 1 at 0x160f: file temp.c, line 9. <lineannotation><command>gdb</command> puts breakpoint at <function>main()</function></lineannotation>
-(gdb) <userinput>run</userinput> <lineannotation>Run as far as <function>main()</function></lineannotation>
+Breakpoint 1 at 0x160f: file temp.c, line 9. <lineannotation>gdb puts breakpoint at main()</lineannotation>
+(gdb) <userinput>run</userinput> <lineannotation>Run as far as main()</lineannotation>
Starting program: /home/james/tmp/temp <lineannotation>Program starts running</lineannotation>
-Breakpoint 1, main () at temp.c:9 <lineannotation><command>gdb</command> stops at <function>main()</function></lineannotation>
+Breakpoint 1, main () at temp.c:9 <lineannotation>gdb stops at main()</lineannotation>
(gdb) <userinput>n</userinput> <lineannotation>Go to next line</lineannotation>
This is my program <lineannotation>Program prints out</lineannotation>
-(gdb) <userinput>s</userinput> <lineannotation>step into <function>bazz()</function></lineannotation>
-bazz (anint=4231) at temp.c:17 <lineannotation><command>gdb</command> displays stack frame</lineannotation>
+(gdb) <userinput>s</userinput> <lineannotation>step into bazz()</lineannotation>
+bazz (anint=4231) at temp.c:17 <lineannotation>gdb displays stack frame</lineannotation>
(gdb)</screen>
<para>Halt mal! Wieso hat denn <symbol>anint</symbol> den Wert
@@ -1739,9 +1703,9 @@ bazz (anint=4231) at temp.c:17 <lineannotation><command>gdb</command> displays
<function>main()</function> und schauen dort nach.</para>
<screen>(gdb) <userinput>up</userinput> <lineannotation>Move up call stack</lineannotation>
-#1 0x1625 in main () at temp.c:11 <lineannotation><command>gdb</command> displays stack frame</lineannotation>
-(gdb) <userinput>p i</userinput> <lineannotation>Show us the value of <symbol>i</symbol></lineannotation>
-$1 = 4231 <lineannotation><command>gdb</command> displays <literal>4231</literal></lineannotation></screen>
+#1 0x1625 in main () at temp.c:11 <lineannotation>gdb displays stack frame</lineannotation>
+(gdb) <userinput>p i</userinput> <lineannotation>Show us the value of i</lineannotation>
+$1 = 4231 <lineannotation>gdb displays 4231</lineannotation></screen>
<para>Oh! Anscheinend haben wir vergessen <symbol>i</symbol> zu
initialisieren. Wir wollten eigentlich</para>
@@ -1788,7 +1752,7 @@ main() {
das Leben etwas einfacher geworden. Zufälligerweise wird
die Kernspeicherdatei unter FreeBSD und anderen
4.4BSD-Systemen
- <filename><replaceable>progname</replaceable>.core</filename>
+ <filename>progname.core</filename>
anstatt einfach nur <filename>core</filename> genannt, um
deutlich zu machen, zu welchem Programm eine Kernspeicherdatei
gehört.</para>
@@ -1798,7 +1762,7 @@ main() {
<command>break</command> oder <command>run</command>
müssen Sie das Folgende eingeben</para>
- <screen>(gdb) <userinput>core <replaceable>progname</replaceable>.core</userinput></screen>
+ <screen>(gdb) <userinput>core progname.core</userinput></screen>
<para>Wenn Sie sich nicht in demselben Verzeichnis befinden wie
die Kernspeicherdatei müssen Sie zuerst <userinput>dir
@@ -1863,7 +1827,7 @@ Cannot access memory at address 0x7020796d.
<command>ps</command> die Prozess-ID des Kindprozesses, und
geben</para>
- <screen>(gdb) <userinput>attach <replaceable>pid</replaceable></userinput></screen>
+ <screen>(gdb) <userinput>attach pid</userinput></screen>
<para>im <command>gdb</command> ein, und können dann wie
üblich mit der Fehlersuche fortfahren.</para>
@@ -1896,7 +1860,7 @@ else if (pid == 0) { /* child */
</sect2>
</sect1>
- <sect1 id="emacs">
+ <sect1 xml:id="emacs">
<title>Emacs als Entwicklungsumgebung verwenden</title>
<sect2>
@@ -1994,8 +1958,7 @@ else if (pid == 0) { /* child */
<para>Und zweifelsfrei viele weitere Punkte, die ich
übersehen habe.</para>
- <para>Emacs kann unter &os; über den <filename
- role="package">editors/emacs</filename> Port installiert werden.</para>
+ <para>Emacs kann unter &os; über den <package>editors/emacs</package> Port installiert werden.</para>
<para>Sobald er installiert ist starten Sie ihn, und geben
dann <userinput>C-h t</userinput> ein, um die Einführung
@@ -2095,9 +2058,8 @@ else if (pid == 0) { /* child */
einfacher zu beherrschen).</para>
<para>Der beste Weg um Emacs Lisp zu erlernen besteht darin,
- sich das <ulink
- url="ftp://ftp.gnu.org/old-gnu/emacs/elisp-manual-19-2.4.tar.gz">Emacs
- Tutorial</ulink> herunterzuladen.</para>
+ sich das <link xlink:href="ftp://ftp.gnu.org/old-gnu/emacs/elisp-manual-19-2.4.tar.gz">Emacs
+ Tutorial</link> herunterzuladen.</para>
<para>Es ist jedoch keine Kenntnis von Lisp erforderlich, um
mit der Konfiguration von Emacs zu beginnen, da ich eine
@@ -2176,7 +2138,7 @@ else if (pid == 0) { /* child */
möchten, Sie einfach das folgende eingeben
können</para>
- <screen>&prompt.user; <userinput>emacsclient <replaceable>filename</replaceable></userinput>
+ <screen>&prompt.user; <userinput>emacsclient filename</userinput>
</screen>
<para>und dann die Datei in Ihrem Emacs editieren
@@ -2566,7 +2528,7 @@ else if (pid == 0) { /* child */
</sect2>
</sect1>
- <sect1 id="tools-reading">
+ <sect1 xml:id="tools-reading">
<title>Weiterführende Literatur</title>
<para>Für Informationen zum Aufsetzen einer