diff options
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.xml | 166 |
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 |