Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Über die Autoren
Über dieses Buch
Linux vs. BSD
1 Der Kernel
2 Die Grundlagen aus Anwendersicht
3 Die Shell
4 Reguläre Ausdrücke
5 Tools zur Dateibearbeitung
6 Die Editoren
7 Shellskriptprogrammierung
8 Benutzerverwaltung
9 Grundlegende Verwaltungsaufgaben
10 Netzwerk-Grundlagen
11 Anwendersoftware für das Netzwerk
12 Netzwerkdienste
13 Mailserver unter Linux
14 LAMP
15 DNS-Server
16 Secure Shell
17 Die grafische Oberfläche
18 Window-Manager und Desktops
19 X11-Programme
20 Multimedia und Spiele
21 Softwareentwicklung
22 Crashkurs in C und Perl
23 Sicherheit
24 Prozesse und IPC
25 Bootstrap und Shutdown
26 Dateisysteme
27 Virtualisierung und Emulatoren
A Die Installation
B Lösungen zu den einzelnen Aufgaben
C Kommandoreferenz
D X11-InputDevices
E MBR
F Die Buch-DVDs
G Glossar
H Literatur

Download:
- ZIP, ca. 6,3 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Plötner, Steffen Wendzel
Das distributionsunabhängige Handbuch
Buch: Linux

Linux
2., aktualisierte und erweiterte Auflage
1119 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1090-4
gp 21 Softwareentwicklung
  gp 21.1 Interpreter und Compiler
    gp 21.1.1 C und C++
    gp 21.1.2 Perl
    gp 21.1.3 Java
    gp 21.1.4 Tcl
    gp 21.1.5 Was es sonst noch gibt
  gp 21.2 Shared Libraries
    gp 21.2.1 Vorteile der Shared Libraries
    gp 21.2.2 Statisches Linken
    gp 21.2.3 Die Dateien
  gp 21.3 Debugging
    gp 21.3.1 Vorbereitung
    gp 21.3.2 Konsolenarbeit
    gp 21.3.3 ddd
  gp 21.4 Profiling
    gp 21.4.1 Compileroption
    gp 21.4.2 gprof verwenden
    gp 21.4.3 Profiling-Daten lesen
  gp 21.5 Tracing
  gp 21.6 Hilfe beim Finden von Bugs
    gp 21.6.1 ProPolice
    gp 21.6.2 flawfinder und RATS
    gp 21.6.3 Electric Fence
  gp 21.7 Integrierte Entwicklungsumgebungen
  gp 21.8 make
    gp 21.8.1 Makefile
    gp 21.8.2 Makefile-Makros
    gp 21.8.3 Shell-Variablen in Makefiles
    gp 21.8.4 Einzelne Targets übersetzen
    gp 21.8.5 Spezielle Targets
    gp 21.8.6 Tipps im Umgang mit make
  gp 21.9 Die GNU Autotools
  gp 21.10 lex/flex und yacc/bison
    gp 21.10.1 flex grundlegend anwenden
    gp 21.10.2 bison/yacc grundlegend anwenden
  gp 21.11 Unix-Software veröffentlichen
    gp 21.11.1 Wichtige Dateien
  gp 21.12 Manpages erstellen
    gp 21.12.1 groff nutzen
    gp 21.12.2 Die Manpage installieren
  gp 21.13 Versionsmanagement
    gp 21.13.1 CVS
    gp 21.13.2 Subversion
  gp 21.14 Wichtige Bibliotheken
    gp 21.14.1 Entwicklung grafischer Oberflächen
    gp 21.14.2 Weitere Bibliotheken
  gp 21.15 Zusammenfassung
  gp 21.16 Aufgaben


Galileo Computing

21.14 Wichtige Bibliotheken  downtop

Bevor wir dieses Kapitel abschließen, seien noch einige Worte zu sehr populären Bibliotheken gesagt. Diese Bibliotheken stehen alle sowohl unter Linux als auch unter den BSD-Betriebssystemen zur Verfügung und sind frei verfügbar.


Galileo Computing

21.14.1 Entwicklung grafischer Oberflächen  downtop

Zur Entwicklung grafischer Oberflächen stehen neben der blanken Xlib noch weitere bekannte Bibliotheken zur Verfügung. Dazu zählen:

  • ncurses
  • Bei ncurses handelt es sich um eine Bibliothek zur Erstellung »grafischer« Oberflächen auf Konsolenebene.
  • OpenMotif
  • OpenMotif ist eine Bibliothek, die sehr an das ältere Aussehen der Unix-Oberfläche erinnert. Der Nachteil von OpenMotif ist der komplexe Quellcode. Neben OpenMotif existieren noch die kostenpflichtige Variante Motif und die unter der LGPL lizenzierte Variante LessTif (http://www.lesstif.org).
  • Tk
  • Tk wurde primär dafür entwickelt, grafische Oberflächen für Tcl-Skripts zu entwickeln. Allerdings kann man Tk beispielsweise auch in der Perl- und C-Programmierung verwenden. Von Letzterer raten wir Ihnen aus eigener Erfahrung ab. Weichen Sie stattdessen auf Gtk oder Qt aus.
  • Gtk
  • Das Gimp Tool Kit (Gtk) ist eine Library, die ursprünglich dafür entwickelt wurde, das Grafikprogramm Gimp zu entwickeln. Mittlerweile wurden eine Menge populärer Programme wie der IRC-Client xchat oder die Desktop-Oberfläche GNOME mithilfe der Gtk-Library entwickelt. Weitere Informationen zu dieser Bibliothek finden Sie unter gtk.org. Ein Vorteil von Gtk besteht darin, dass es auf verschiedenen Platformen, u.a. auch auf Windows, verfügbar ist. Zudem kann es in Verbindung mit Ruby, Perl und C hervorragend verwendet werden.
  • Qt
  • Die norwegische Firma Trolltech (trolltech.no) hat die objektorientierte Bibliothek Qt entwickelt. Qt ist eine C++-Library und ziemlich umfangreich. Der Vorteil von Qt besteht darin, dass es zum einen sehr portabel ist und dass man zum anderen mit relativ wenig Code relativ viel bewirken kann. Die KDE-Desktop-Oberfläche sowie deren Komponenten basieren auf der Qt-Bibliothek, was seit vielen Jahren zur Popularität derselben beiträgt. Qt ist quelloffen und nur für den kommerziellen Gebrauch kostenpflichtig.
  • OpenGL
  • Die OpenGL-Bibliothek ermöglicht grafische Programmierung auf hohem Niveau. Fast alle guten Linux-Spiele sind mit dieser Library realisiert worden, wozu auch viele aktuelle kommerzielle Spiele zählen.

»Hello World« am Beispiel von Qt

Wir möchten Ihnen ein kleines »Hello World«-Programm am Beispiel von Qt nicht vorenthalten. Für Qt haben wir uns aus persönlichen Geschmacksgründen entschieden, weil man mit dieser Bibliothek am komfortabelsten GUIs entwickeln kann.

Anders als bei Gtk+ muss man sich bei Qt nicht mit meterlangen Funktionsnamen herumschlagen und spart Unmengen an Quellcode!

Ein Qt-basiertes »Hello World«-Programm sieht in C++ folgendermaßen aus:

 #include <QApplication> 
 #include <QPushButton> 
 
 int main(int argc, char *argv[]) 
 { 
     QApplication app(argc, argv); 
     QPushButton hello("Hello World"); 
 
     hello.resize(80, 20); 
     hello.show(); 
     return app.exec(); 
}

Listing 21.83    hello.cpp

Für eigentlich jedes Qt-Widget gibt es eine eigene Header-Datei. In diesem Fall benötigen wir nur die primäre Header-Datei für die Erstellung einer Qt-Anwendung (QApplication) sowie die Header-Datei für den »Push Button« (QPushButton). Ein Push Button ist eine Schaltfläche, der man im Anwendungsfenster eine Größe, eine Aufschrift, eine Aktion usw. zuordnen kann.

In der main()-Funktion erstellen wir zunächst ein QApplication-Objekt »app« dem wir die Aufrufparameter der main()-Funktion übergeben. Danach erstellen wir einen Objekt eines QPushButtons, dem wir die Aufschrift »Hello World« verpassen.

Mit der resize()-Methode werden die Maße des Buttons festgelegt und mit der show()-Methode wird er im Fenster der Anwendung sichtbar. Anschließend wird die Kontrolle noch der exec()-Funktion der QApplication übergeben, womit Qt die Kontrolle über die Anwendung übernimmt.

Kompilieren

Erstellt wird die Programmdatei automatisch durch qmake, das das Verzeichnis nach C++- und Header-Dateien untersucht und automatisch eine Makefile generiert. Anschließend müssen wir noch das eigentliche make-Programm aufrufen, um die erzeugte Makefile zu benutzen.

$ qmake -project 
$ qmake 
$ make

Listing 21.84    Das Projekt übersetzen

Startet man das Programm, dann sollte man den »Hello World«-Button erkennen. Der Button verfügt bisher über keine Funktion, doch er ist bereits sichtbar.

Abbildung 21.6    Das Qt-»Hello World«-Programm

Funktionalität

In Qt werden Objekte mit einer Funktionalität verbunden, indem man sie »connected«. Möchte man beispielsweise das Programm beenden, wenn der obige Button angeklickt wurde, so übergibt man den Button als ersten Parameter an die connect-Methode, die ihn mit dem Signal clicked() verbinden und ihn durch quit() beenden soll.

Object::connect(&hello, SIGNAL(clicked()), &app, SLOT(quit()));

Listing 21.85    Hello-Button connecten


Galileo Computing

21.14.2 Weitere Bibliotheken  toptop

Neben den oben erwähnten populären Grafikbibliotheken existieren noch einige weitere erwähnenswerte Bibliotheken, die wir Ihnen selbstverständlich nicht vorenthalten möchten.

  • libc
  • Die Standard-C-Bibliothek
  • libstdc++
  • Die ANSI C++-Library von GNU
  • PCAP
  • Die packet capture library bietet Zugriff auf den TCP/IP-Link-Layer. Hiermit lassen sich Pakete – etwa Ethernet- oder PPP-Frames -- abfangen. Viele Sniffer (u.a. tcpdump) verwenden diese Bibliothek. Der enorme Vorteil besteht darin, dass PCAP recht portabel ist und man sich durch die Verwendung der Library-Funktionen am direkten Zugriff auf die systemabhängigen Zugriffsmechanismen für den Link-Layer vorbeischummeln kann. <Dazu zählen etwa das Data-Link Provider-Interface (DLPI) und der BSD Packet Filter.>
  • LibXML2
  • Eine Library zur Verarbeitung von XML-Daten
  • libUSB
  • Eine Library für den Zugriff auf den Universal Serial Bus (USB)
  • libunicode
  • Diese Library bietet Funktionalitäten, um Unicode-Zeichen und -Strings zu bearbeiten. Dabei werden UTF-8 und UCS-2 unterstützt.
  • libICQ2000
  • Diese Library implementiert das ICQ2000/2001-Protokoll, mit dem der bekannte gleichnamige Instant Messenger kommuniziert.
  • libpng
  • Eine Library zum Erstellen und Lesen von PNG-Bilddateien
  • tiff
  • Eine Library zur Arbeit mit tiff-Bilddateien
  • libungif
  • Eine Library zur Arbeit mit gif-Bilddateien
  • libmpeg2
  • Eine Library zum Dekodieren von MPEG-2-Videostreams
  • readline
  • Eine Library, um benutzerfreundliche Eingaben auf Konsolenebene in das eigene Programm zu implementieren
  • libtar
  • Eine Library zur Manipulation von tar-Archivdateien
  • zlib
  • Eine Library zur Kompression von Daten


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Linux






 Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Einstieg in Linux






 Einstieg in Linux


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-
 Programmierung


Zum Katalog: Praxisbuch Netzwerk-Sicherheit






 Praxisbuch
 Netzwerk-Sicherheit


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de