Plattformübergreifende Softwareentwicklung unter Linux
|
|
- Hannah Hofer
- vor 8 Jahren
- Abrufe
Transkript
1 Plattformübergreifende Softwareentwicklung unter Linux Dr. Christian Dietrich Linux-Infotag FH-Augsburg
2 Inhalt Allgemeines Paradigmen plattformübergreifender Softwareentwicklung Binaries für unterschiedliche Targets in C/C++ Standards Libraries und Frameworks Sprachkonzepte GNU-Compiler / GNU-Toolchain Beispiel C/C++ Qt Prozessorspeziefische Optimierung
3 Allgemeines Ziel der Plattformübergreifenden Entwicklung: Software auf möglichst vielen Computersystemen (Zielsystemen) mit Unterschieden in Architektur, Prozessor, Compiler und Betriebssystem in einer lauffähigen Version zur Verfügung zu stellen. Dieses Ziel kann durch zwei unterschiedliche Paradigmen erreicht werden.
4 Paradigmen 1. Plattformunabhängige(re) Software: Die Plattformunabhängigkeit des Programms (Zwischencode, interpretierbarer Code und Fat Binaries) soll erhöht werden, um eine Lauffähigkeit auf den verschiedenen (den gewünschten) Zielsystemen zu erreichen. 2. Binaries für unterschiedliche Targets: Die Portabilität des Quellcodes soll verbessert werden (plattformübergreifende Programmierung), damit die auf diesem basierenden Programme (Binaries) für unterschiedliche Zielsysteme (Targets) kompiliert werden können.
5 Plattformunabhängige(re) Software In Zwischencode vorliegende Software: Programme, die als Bytecode vorliegen und die auf einer virtuellen Maschine ausgeführt werden (Java,.NET). Virtuelle Maschinen existieren für verschiedenen Zielsysteme. Interpretierbare Software: Programme, die als Quellcode vorliegen und auf dem Zielsystem durch einen Interpreter ausgeführt werden (Perl, PHP, Python,...). Fat Binaries: Programmpakete, die mehrere lauffähige Versionen enthalten. Das Betriebssystem startet ohne Interaktion des Anwenders die richtige Version. Voraussetzung für die Erstellung der fat binary ist die Portabilität des Quellcodes. Beispiele: Das OpenStep-Programmformat. Mac OS Fat Binaries, die sowohl auf Motorola-680x0- basierten Apple-Rechnern als auch auf PowerPC-Macs ausführbar sind.
6 Binaries für unterschiedliche Targets Quellcode-Portabilität / Plattformübergreifende Programmierung: Häufig bei C/C++-Programmen für LINUX/UNIX. Quellcode enthält Anweisungen, die es erlauben, die Betriebssystemunterschiede auszugleichen. Zahlreiche Hilfsmittel, z.b. GNU autoconf. Viele im Quellcode portable Programme stehen bereits in vorgefertigten Versionen für mehrere Plattformen bereit. Beispiele: Mozilla, Firefox, Thunderbird, GIMP, OpenOffice. Cross Compiler: Bei der Softwareentwicklung für Embedded Systeme tritt häufig das Problem auf, dass das Embedded System nicht über genügend Ressourcen für das Entwicklungssystem (Compiler, Debugger, Profiler,...) verfügt. Hier wird auf dem Entwicklungssystem ein Cross Compiler eingesetzt, der die Binaries für das Zielsystem (das Embedded System) erzeugt.
7 Bemerkungen Plattformunabhängige(re) Software Virtuelle Maschinen (VM) und einige Interpreter sind mittlerweile schnell und enthalten Optimierungen. Beispielsweise: Die dynamische Übersetzung zur Laufzeit durch einen JIT-Compiler (Just-In-Time-Compiler). Der Ressourcenbedarf für die VM ist für Embedded-Systeme meist zu hoch. Binaries für unterschiedliche Targets Die native Ausführung eines Programms ist meist schneller. Der Ressourcenbedarf nativer Programme ist geringer.
8 Binaries für unterschiedliche Targets in C/C++
9 Standards ANSI-C Relativ einheitliche Implementierung auf verschiedenen Plattformen. Zusätzlich wird jedoch eine Standard C Library benötigt. POSIX (Portable Operating System Interface for UNIX) Ein gemeinsam von der IEEE und der Open Group für Unix entwickeltes standardisiertes Applikationsebeneninterface, das die Schnittstelle zwischen Applikation und dem Betriebssystem darstellt. Basis-Definitionen (POSIX.1/IEEE ): Eine Liste der im Standard benutzten Konventionen und Definitionen, zusätzlich noch eine Liste der bereitzustellenden C-Headerdateien Shell und Hilfsprogramme (POSIX.2/IEEE ): Eine Liste der Hilfsprogramme und der Shell Echtzeit-Erweiterungen (POSIX.4/IEEE b-1993/IEEE d-1999) Thread-Erweiterungen (POSIX.4a/IEEE c-1994) System-Schnittstelle: Eine Liste der C-Systemaufrufe, die unterstützt werden müssen
10 Libraries Die GNU libc (glib-2, auch bekannt als libc-6) Ist sehr umfangreich, da sie mit der Intention entwickelt wurde, möglichst viele Standards für C-Libraries zu erfüllen. Ihre Verwendung in Anwendungsprogrammen führt daher zu einer hohen Maß an Portabilität. Die glibc erfüllt die folgenden Standards: ANSI C POSIX.1 Viele Funktionen von POSIX.2 Aufwärts kompatibel zu BSD 4.3 und 4.4 Viele Funktionen von System V (SVID) GNU-eigene Erweiterungen
11 Libraries und Frameworks C Bibliotheken GNU libc (existiert auch für Windows und Mac) uclibc (für Embedded Systeme) newlib (für Embedded Systeme) Diet-libc (für Embedded Systeme) C++ Frameworks zur plattformunabhängigen Entwicklung Qt (Windows, Linux, Mac) Qt Embedded (für Embedded Systeme) WxWidgets (Windows, Linux, Mac, Embedded) Grafiklibraries PicoGUI (für Embedded Systeme) MiniGUI (für Embedded Systeme) MicroWindows (für Embedded Systeme) FLTK (für Embedded Systeme)
12 Libraries und Frameworks uclibc Qt C Library, die sich für den Einsatz auf Embedded Systemen eignet Speicherbedarf ca. 300 kb Plattform-Abstraction-Layer, zur einfachen Konfiguration der Library für Rechner mit unterschiedlicher Hardware Basiert auf C++ und ist vollständig objektorientiert Unterliegt der GPL Vom Hersteller kann eine Lizenz für Closed Source Software erworben werden Es existieren zwei Versionen: Qt für X11, Windows und Mac Qt embedded (kommt ohne X11 aus)
13 Sprachkonzepte Die Qt Klasse QSettings implementiert ein persistentes plattformunabhängiges Setting. Während der Quellcode identisch ist, bool writeentry (const QString& key, bool value) bool writeentry (const QString& key, double value) bool writeentry (const QString& key, int value) bool writeentry (const QString& key, const QString & value) QString readentry(const QString& key, const QString& def = QString::null, bool* ok = 0) const int readnumentry(const QString& key, int def = 0, bool* ok = 0) const double readdoubleentry(const QString& key, double def = 0, bool* ok = 0) const bool readboolentry ( const QString & key, bool def = FALSE, bool * ok = 0 ) const werden die Daten betriebssystemspezifisch abgespeichert. Linux/UNIX: QSettings speichert die Informationen in den gewohnten Textdateien. Windows: QSettings speichert die Daten in der Registry. Mac OS X: QSettings verwendet die Carbon API für Settings.
14 GNU-Compiler Standard Compiler vieler Systeme: Linux, BSD, Mac OS X, NextStep, BeOS, ZETA,... Der GNU-Compiler besitzt einen leistungsfähigen Codeoptimierer. Dieser reduziert die Größe des Binärcodes und optimiert die Performanz. Durch das Frontend/Backend-Konzept eignet sich der GNU Compiler insbesondere für die Codeerstellung zahlreicher Hardware-Plattformen. Frontends sind sprachabhängig und erzeugen einen abstrakten Syntaxbaum. Fast alle modernen kompilierbaren Sprachen stehen bereit (C/C++, Objective-C, ADA, Fortran, Java). Backends implementieren die Schnittstelle zur verwendeten Prozessor-Architektur. Nebenbei: Viele Codeoptimierungsverfahren optimieren den abstrakten Syntax-Baum. Dieser Teil des Compilers wird als Middleend bezeichnet.
15 GNU-Toolchain Die GNU-Toolchain stellt eine Sammlung von Entwicklungstools zur Verfügung: Compiler (gcc, g++) Linker (ld) Debugger (gdb) Assembler (as) Profiler (gprof) ar, nm, objcopy, objdump, ranlib, strip,...
16 Entwicklungsumgebung Moderne Entwicklungsumgebungen unter Linux nutzen keinen eigenen Compiler und Debugger, sondern verwenden den GNU Compiler/Debu gger. KDevelop Eclipse
17 Ein Beispiel C/C++ Qt Ein GUI Programm Hello World bestehend aus 3 Source-Code Dateien. mywidget.h #include <qwidget.h> class MyWidget : public QWidget { public: MyWidget(QWidget *parent=0, const char *name=0); };
18 Ein Beispiel C/C++ Qt mywidget.cpp: #include "mywidget.h" #include <qpushbutton.h> MyWidget::MyWidget(QWidget *parent, const char *name) : QWidget(parent, name) { setminimumsize(200, 120); setmaximumsize(200, 120); QPushButton* quit = new QPushButton("Quit", this, "quit"); quit->setgeometry(62, 40, 75, 30); quit->setfont(qfont("times", 18, QFont::Bold)); } connect(quit, SIGNAL(clicked()), qapp, SLOT(quit()));
19 Ein Beispiel C/C++ Qt main.cpp #include "mywidget.h" #include <qapplication.h> int main(int argc, char** argv) { QApplication a(argc, argv); MyWidget w; w.setgeometry(100, 100, 200, 120); a.setmainwidget(&w); w.show(); return a.exec(); }
20 Ein Beispiel C/C++ Qt Erzeugen der Project-Datei: (Nur Anfangs) > qmake -project Erzeugen eines plattformspezifischen Makefiles: > qmake Binary erstellen: > make
21 Ein Beispiel C/C++ Qt Unter Linux / X11 verwendet das Programm die folgenden Libraries. Befehl: ldd example
22 Ein Beispiel C/C++ Qt Durch die Verwendung von Qt embedded entfallen die Abhängigkeiten zu X11. Die grafische Ausgabe erfolgt über den Framebuffer. Befehl: ldd example
23 Ein Beispiel C/C++ Qt Unter Windows verwendet das Programm die folgenden Libraries. Befehl: dumpbin /dependants example.exe Verwendeter Compiler: Visual C++
24 Ein Beispiel C/C++ Qt Sofern das Target nicht über genügend Ressourcen für das Entwicklungssystem verfügt, werden folgende Tools auf dem Entwicklungsrechner benötigt um Qt-Programme zu erstellen: Ein Cross-Compiler (in vielen Fällen eine gnu Tool-Chain). Diese beinhaltet die C-Libary und die C++Library. Eine Qt Library für das Zielsystem. Diese wird üblicherweise durch den Cross-Compiler erstellt. Nun können auf einem Entwicklungsrechner Binaries für das entsprechende Target erzeugt werden. Allerdings müssen einige Umgebungsvariablen beachtet werden...
25 Ein Beispiel C/C++ Qt case "$ENV" in "qtx11" ) export QTDIR=/usr/lib/qt-x11-free unset QMAKESPEC ;; "qtemb" ) export QTDIR=/usr/lib/qt-embedded-free unset QMAKESPEC ;; "qtarm" ) export QTDIR=/usr/lib/qt-embedded-free arm PATH=$PATH:/usr/local/arm/cross-gcc/i686-pc-linux-gnu/bin: export QMAKESPEC=$QTDIR/mkspecs/qws/linux-arm-g++ ;; esac
26 Ein Beispiel C/C++ Qt Der Unix-Befehl file zeigt an, für welches Target das Binary erzeugt wurde. Siehe...
27
28 Optimierter Code Der GNU Compiler unterstützt Optimierungsstrategien verschiedener Prozessoren. ACHTUNG: Diese müssen auch vom Betriebssystem unterstützt werden, da dieses beim Wechsel zwischen Prozessen den Zustand der Register speichern muss. SIMD-Erweiterungen (Single Instruction, Multiple Data) wie MMX, SSE, SSE2, SSE3 und 3DNow erlauben, dass durch einen einzelnen Befehl, mehrere Berechnungen, parallel ausgeführt werden. Durch Intrinsics-Funktionen können diese Erweiterungen auch ohne Inline-Assembler verwendet werden. Ein Beispiel: Übersetzen mit SSE2 (ab Pentium 4) > g++ -msse2 -DUSE_INTRINSICS multiply.cpp -o multiply.sse2 Übersetzen ohne Optimierung > g++ multiply.cpp -o multiply.std
29 Der Präprozessor übernimmt die bedingte Ersetzung des SSE2 optimierten Codes. Der optimierte Code wird durch den define USE_INTRINSICS eingeschaltet.
30 Fazit Linux bietet eine moderne Entwicklungsumgebung und viele Tools um Software plattformunabhängig zu entwickeln. Der C/C++ Ansatz wurde vorgestellt. Qt stellt Tools (qmake, linguist, designer,...) zur Verfügung um C++- Programme zu erstellen, die auf unterschiedlichen Zielsystemen lauffähig sind. Im Gegensatz zu Java/.NET müssen die Binaries jedoch für die vorgesehenen Zielsysteme erstellt werden. Die individuelle Erstellung der Binaries ermöglicht die Optimierung dieser für die unterschiedlichen Zielsysteme.
Embedded-Linux-Seminare. Toolchains
Embedded-Linux-Seminare Toolchains http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de Kopier-Rechte
MehrInformatik für den Satellitenbau. Toolchains und Crosscompiler
Informatik für den Satellitenbau Toolchains und Crosscompiler Folie 1 Inhalt GNU-Toolchain Crosscompiler Zusammenfassung Folie 2 GNU Toolchain GNU Make GNU Compiler Collection (GCC) GNU Binutils GNU Debugger
MehrDie Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter
Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,
MehrThe ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung
The ToolChain Grafisches Debugging mit der QtCreator Entwicklungsumgebung geschrieben von Gregor Rebel 2014-2015 Hintergrund Neben dem textuellen Debuggen in der Textkonsole bieten moderene Entwicklungsumgebungen
Mehr2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE
2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
MehrZum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...
Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
MehrAnleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT
Boris Golubovic Dortmund, den 24. Oktober 2010 Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT Ein Projekt anlegen Ein Projekt kapselt alle zu einer Anwendung gehörenden
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
Mehrschnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv
Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag
MehrInstallation und Inbetriebnahme von Microsoft Visual C++ 2010 Express
Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation
MehrInstallation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren
Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren 1 32- oder 64-bit Windows feststellen In den nachfolgenden Schritten ist es nötig, dass Sie wissen, ob Sie
MehrDLLs (dynamic loaded libraries) mit MingW erstellen
DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:
MehrInstallationsanleitung
Installationsanleitung zu @Schule.rlp (2015) Inhaltsverzeichnis Inhaltsverzeichnis... 1 Voraussetzungen... 2 vorbereitende Aufgaben... 3 Installation @Schule.rlp (2015):... 3 Installation Java SE Runtime
MehrÜbung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
MehrWas ist QT? Beispiele: KDE Google Earth Mathematika
Einführung in QT Was ist QT? QT ist eine Klassenbibliothek für plattformübergreifende Programmierung graphischer Benutzeroberflächen QT ist für verschiedene Graphikplattformen wie X11 (Unix), Windows,
MehrEinführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition
In den nachfolgenden Schritten finden Sie beschrieben, wie Sie in der Entwicklungsumgebung Microsoft Visual Studio 2010 eine Projektmappe, ein Projekt und einen ersten Quellcode erstellen, diesen kompilieren,
MehrLehrveranstaltung Grundlagen von Datenbanken
Verbindungsanleitung mit der Datenbank Um sich mit der Datenbank für die Übung zu verbinden, gibt es mehrere Möglichkeiten. Zum einen ist die Datenbank aus dem Netz des Informatikums direkt erreichbar.
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
Mehr0. Einführung. C und C++ (CPP)
C und C++ (CPP) 0. Einführung Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte Wissenschaften marc.rennhard@zhaw.ch Marc Rennhard, 05.01.2010,
MehrKonventionen. Danksagung
Einleitung Konventionen Im Folgenden möchte ich Sie mit ein paar Konventionen vertraut machen, die Ihnen bei der Lektüre des Buches helfen sollen. Namen von neu im Text eingeführten Programmen, Produkten
MehrVorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick
Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent
Mehr.NET Code schützen. Projekt.NET. Version 1.0
.NET Code schützen Projekt.NET Informationsmaterial zum Schützen des.net Codes Version 1.0 Autor: Status: Ablage: Empfänger: Seiten: D. Hoyer 1 / 6 Verteiler : Dokument1 Seite 1 von 1 Änderungsprotokoll
MehrAlbert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen
Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.
MehrJava Einführung Programmcode
Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:
MehrProgrammierung für Mathematik (HS13)
software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit
MehrInformationen zur Verwendung von Visual Studio und cmake
Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von
MehrKurzanleitung zu XML2DB
Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines
MehrJava Entwicklung für Embedded Devices Best & Worst Practices!
Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard
MehrVorkurs Informatik WiSe 15/16
Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan
MehrSoftware-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung
MehrProseminar Technische Informatik A survey of virtualization technologies
Proseminar Technische Informatik A survey of virtualization technologies Referent: Martin Weigelt Proseminar Technische Informatik - A survey of virtualization technologies 1 Übersicht 1. Definition 2.
MehrInternet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
MehrQt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse
Qt Programmierung Teil 1 Fenster erstellen by NBBN (http://nbbn.wordpress.com) CrashKurs-Artig. Was brauche ich? -Einige C++ Kenntnisse Wie man in C++ mit Hilfe von Qt GUI-Anwendungen programmieren kann.
MehrDie Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal
HIER DREHT SICH ALLES UM IHRE ZUKUNFT Entwicklung einer Architektur für automatisierte UI-Tests Im Rahmen Ihrer entwickeln Sie eine Software-Lösung, die das automatische Bedienen und Befüllen der graphischen
MehrPräsentation Von Laura Baake und Janina Schwemer
Präsentation Von Laura Baake und Janina Schwemer Gliederung Einleitung Verschiedene Betriebssysteme Was ist ein Framework? App-Entwicklung App-Arten Möglichkeiten und Einschränkungen der App-Entwicklung
MehrAnleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH
Amt für Informatik Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH Anleitung vom 12. September 2009 Version: 1.0 Ersteller: Ressort Sicherheit Zielgruppe: Benutzer von SSLVPN.TG.CH Kurzbeschreib:
MehrHex Datei mit Atmel Studio 6 erstellen
Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.
MehrPraktikum IKT 3. Semester
Praktikum IKT 3. Semester Dr. Andreas Müller, TU Chemnitz, Fakultät für Informatik Inhaltsverzeichnis 1 1 Einführung in QT 1.1 Die QT-Bibliothek Informationen: http://www.trolltech.com Lehner, B: KDE-
MehrOpen Source Software. Workshop : Open Source Software 3. Mannheimer Fachtag Medien 23.10.07. Referent : Christopher Wieser (www.opso-it.
Open Source Software Workshop : Open Source Software 3. Mannheimer Fachtag Medien 23.10.07 Referent : Christopher Wieser (www.opso-it.de) Open Source Software Ablauf Einführung in die Begriffe Open Source,
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrGUI Programmierung mit Qt
GUI Programmierung mit Qt C++ vs. JAVA Norman Wolf 22.04.05 GUI Programmierung mit Qt 1 Einleitung Qt wird von der norwegischen Firma Trolltech entwickelt Es ist kommerzielle Software, die aber von Trolltech
MehrSJ OFFICE - Update 3.0
SJ OFFICE - Update 3.0 Das Update auf die vorherige Version 2.0 kostet netto Euro 75,00 für die erste Lizenz. Das Update für weitere Lizenzen kostet jeweils netto Euro 18,75 (25%). inkl. Programmsupport
MehrBeispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging
Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit
MehrKurzfassung der Studienarbeit
Kurzfassung der Studienarbeit Abteilung Informatik Namen der Studenten Roman Widmer Mikkala Pedersen Studienjahr Sommersemester 2004 Titel der Studienarbeit.NET Skript Debugger Examinator Der GUI-Builder
MehrEprog Starthilfe. 5. Oktober 2010. 1 Einleitung 2
Eprog Starthilfe 5. Oktober 2010 Inhaltsverzeichnis 1 Einleitung 2 2 Windows 2 2.1 Cygwin Installation................................... 2 2.2 Programmieren mit Emacs............................... 8
MehrC++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang
Einleitung Dieses Buch wendet sich an jeden Leser, der die Programmiersprache C++ neu lernen oder vertiefen möchte, egal ob Anfänger oder fortgeschrittener C++-Programmierer. C++ ist eine weitgehend plattformunabhängige
MehrEin mobiler Electronic Program Guide für Android
Whitepaper Telekommunikation Ein mobiler Electronic Program Guide für Android Prototyp für Android Apps 2011 SYRACOM AG 1 Einleitung Apps Anwendungen für mobile Geräte sind derzeit in aller Munde. Durch
MehrC A R L V O N O S S I E T Z K Y. Boost C++ Libraries. Johannes Diemke. Department of Computer Science Learning and Cognitive Systems
C A R L V O N O S S I E T Z K Y Boost C++ Libraries Johannes Diemke Department of Computer Science Learning and Cognitive Systems Grundlagen Freie von Experten begutachtete, portable C++ Bibliothek Nützlich,
MehrXcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X
Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,
MehrEinführung in die Programmierung mit Qt
Einführung in die Programmierung mit Qt Dr. Ralf Schüler 5.11.2009 Was ist Qt? sprich: [kju:t] Klassenbibliothek für C++ (ferner Java, Python u.a.) sehr umfangreich: GUI, Stringverarbeitung, reguläre Ausdrücke,
MehrSFKV MAP Offline-Erfassungstool. Installationsanleitung
SFKV MAP Offline-Erfassungstool Autor(en): Martin Schumacher Ausgabe: 16.02.2010 1. Allgemein Damit das Offlinetool von MAP ohne Internetverbindung betrieben werden kann, muss auf jedem Arbeitsplatz eine
MehrIBM Software Demos Tivoli Provisioning Manager for OS Deployment
Für viele Unternehmen steht ein Wechsel zu Microsoft Windows Vista an. Doch auch für gut vorbereitete Unternehmen ist der Übergang zu einem neuen Betriebssystem stets ein Wagnis. ist eine benutzerfreundliche,
MehrKap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster
Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.
MehrKompilieren und Linken
Kapitel 2 Kompilieren und Linken Bevor wir uns auf C++ selbst stürzen, brauchen wir einiges Vorgeplänkel, wie man komfortabel ein größeres C++- kompilieren kann. Mit Java stellt sich der Kompiliervorgang
MehrC++ und mobile Plattformen
Dieser Artikel stammt aus dem Magazin von C++.de (http://magazin.c-plusplus.de) C++ und mobile Plattformen Mit diesem Artikel möchte ich euch einen kurzen Überblick über die verschiedenen Plattformen für
MehrIn 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC
PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com
MehrIntelliRestore Seedload und Notfallwiederherstellung
IntelliRestore Datensicherung IntelliRestore Seedload und Notfallwiederherstellung Daten. Sichern. Online Vorwort Auch größere Datenmengen lassen sich für gewöhnlich schnell über den IntelliRestore SoftwareClient
MehrComtarsia SignOn Familie
Comtarsia SignOn Familie Handbuch zur RSA Verschlüsselung September 2005 Comtarsia SignOn Agent for Linux 2003 Seite 1/10 Inhaltsverzeichnis 1. RSA Verschlüsselung... 3 1.1 Einführung... 3 1.2 RSA in Verbindung
MehrInteraktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014
Interaktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014 Martin Vollenweider Dateinamen im Internet Da wir im Internet in gemischten Hard- und Softwareumgebungen (z.b. Windows, Unix, Macintosh,
MehrINHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA
INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 VORBEDINGUNGEN Als Vorbedingungen sollte bereits
MehrC++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet
C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()
MehrAnleitung zum erstellen einer PDF-Datei aus Microsoft Word
Anleitung zum erstellen einer PDF-Datei aus Microsoft Word 1. Vorbereitung des PCs Um dem Tutorial folgen zu können müssen folgende Programme auf Ihrem PC installiert sein: Ghostskript 8.64: Ghostskript
MehrInternet online Update (Internet Explorer)
Um Ihr Consoir Beta immer schnell und umkompliziert auf den aktuellsten Stand zu bringen, bieten wir allen Kunden ein Internet Update an. Öffnen Sie Ihren Internetexplorer und gehen auf unsere Internetseite:
MehrAnwenderdokumentation PersoSim
Anwenderdokumentation PersoSim Die nachfolgende Anwenderdokumentation soll dem Anwender bei der Installation und den ersten Schritten im Umgang mit PersoSim helfen. Installation Grundvoraussetzung für
MehrEasyProfil unter Windows 7 64-Bit Home Premium (Die Installation der VirtualBox und EasyProfil)
EasyProfil unter Windows 7 64-Bit Home Premium (Die Installation der VirtualBox und EasyProfil) Die Open Source-Virtualisierung VirtualBox macht es möglich, Windows XP unter Windows 7 64-Bit laufen zu
MehrLizenzierung von System Center 2012
Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im
MehrLEHRSTUHL FÜR DATENBANKEN
LEHRSTUHL FÜR DATENBANKEN Informatik II für Verkehrsingenieure Java & Eclipse Installationsguide Prof. Dr.-Ing. Wolfgang Lehner > Was ist Eclipse? Eine sogenannte Integrierte Entwicklungsumgebung (engl.
MehrHTW-Aalen. OpenVPN - Anleitung. Eine Installations- und Nutzungsanleitung zu OpenVPN
HTW-Aalen OpenVPN - Anleitung Eine Installations- und Nutzungsanleitung zu OpenVPN Sabine Gold Oktober 2013 Inhaltsverzeichnis 1 Download und Installation des OpenVPN-Clients... 2 1.1. Betriebssystem Windows...
MehrKNX BAOS Gadget. Installations- und Bedienanleitung. WEINZIERL ENGINEERING GmbH. DE-84508 Burgkirchen E-Mail: info@weinzierl.de Web: www.weinzierl.
Installations- und Bedienanleitung DE-84508 Burgkirchen E-Mail: info@weinzierl.de Web: www.weinzierl.de 2013-08-12 Seite 1/6 Inhaltsverzeichnis 1. BESCHREIBUNG... 3 2. SYSTEMVORAUSSETZUNGEN... 3 3. INSTALLATION...
Mehr1. Produktstruktur... 3 2. Lizenzmodell... 4
EMBRICS Lizenzmodell Stand 29.11.2012 Table of Contents 1. Produktstruktur... 3 2. Lizenzmodell... 4 2.1. Projektbindung...4 2.2. Lizenztypen...4 2.2.1. Applikationsmodule für das Zielsystem...4 2.2.2.
MehrEinführung in die Informatik Tools
Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht
MehrDas Handbuch zu KAppTemplate. Anne-Marie Mahfouf Übersetzung: Burkhard Lück
Anne-Marie Mahfouf Übersetzung: Burkhard Lück 2 Inhaltsverzeichnis 1 Einleitung 5 2 Arbeiten mit KAppTemplate 6 3 Welche Vorlage brauchen Sie? 9 3.1 Die C++-Vorlage für eine grafische KDE4-Anwendung................
MehrSoftwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch
Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich
MehrLINUX Schulung. FrauenComputerZentrum Berlin. Jutta Horstmann, Mai 2006
LINUX Schulung FrauenComputerZentrum Berlin Jutta Horstmann, Mai 2006 Agenda Was ist Linux Was ist Open Source Warum Open Source Software Wie sieht Open Source Software aus Was kann man damit machen Ausprobieren!!
Mehr10 Erweiterung und Portierung
10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle
MehrRillsoft Project - Installation der Software
Rillsoft Project - Installation der Software Dieser Leitfaden in 6 Schritten soll Sie schrittweise durch die Erst-Installation von Rillsoft Project führen. Beachten Sie bitte im Vorfeld die nachstehenden
MehrInstallationsanleitung WSCAD Elektrohandwerk
Firmenzentrale Dieselstraße 4 85232 Bergkirchen 08131 / 3627-98 08131 / 3627 52 sales@wscad.com Niederlassung West (Akademie) Lehnstraße 17 52146 Würselen 02405 / 450 798-0 02405 / 450 798-99 Installationsanleitung
MehrSCRIBUS WORKSHOP Handout Gimp
SCRIBUS WORKSHOP Handout Gimp 1 Ziele des Workshops Was ist Gimp? Was kann ich mit Gimp machen? Wie erstelle ich ein Bild für Scribus? Wie erstelle ich eine Vektorgrafik für Scribus? Varia? 2 Was ist Gimp?
MehrEinführung in PHP. (mit Aufgaben)
Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites
MehrUpdatehinweise für die Version forma 5.5.5
Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrMPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven
MPI-Programmierung unter Windows mit MPIH2 Installieren von MPIH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 02/2007 luster-installationsworkshop
MehrMobile RPG - Smartphone-Anwendungen mit Mobile RPG - I Christian Neißl, 6.4.2013
Mobile RPG - Smartphone-Anwendungen mit Mobile RPG - I Christian Neißl, 6.4.2013 Im letzten Artikel wurde das Konzept von Mobile RPG (MR) vorgestellt. Dieser Artikel geht auf die technischen Voraussetzungen
MehrInternet online Update (Mozilla Firefox)
Um Ihr Consoir Beta immer schnell und umkompliziert auf den aktuellsten Stand zu bringen, bieten wir allen Kunden ein Internet Update an. Öffnen Sie Ihren Mozilla Firefox und gehen auf unsere Internetseite:
MehrC++ mit Eclipse & GCC unter Windows
C++ mit Eclipse & GCC Seite 1 / 14 C++ mit Eclipse & GCC unter Windows Hinweise Stand 18. Okt. 2014 => GCC 4.9.1 Boost 1.56.0 Eclipse Luna V. 4.4.1 Java Version 8, Update 25 (entspricht 1.8.0_25) Achtung
Mehr36 Grafisches Join-Tool
277 36 Grafisches Join-Tool Samba wird häufig nicht ganz zu Unrecht nachgesagt, es biete keine grafischen Tools zur Administration. Das Samba Web Administration Tool haben Sie bereits in Kapitel 5 kennengelernt.
MehrWir wünschen Ihnen viel Freude und Erfolg mit Ihrem neuen X-PRO-USB-Interface. Ihr Hacker-Team
Installationsanleitung Hacker X-PRO-USB-Controller V2 Software + Interface Sehr geehrter Kunde, wir freuen uns, dass Sie sich für das X-PRO-USB-V2-Interface aus unserem Sortiment entschieden haben. Sie
MehrABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2
Produkt: Melde- und Bedientableau Typ: MT 701.2 Aktuelles Anwendungsprogramm Plug-In für ETS 2 MT_701_2_ETS2_SOW_xx_V1-12a_de_en.exe Plug-In für ETS 3 MT_701_2_ETS3_SOW_xx_V1-12a_de_en.exe EIBTAB: MT_701_2_EIBTAB_SOW_de_V2-08-00A_EibTab+Firmware.EXE
MehrEclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007
Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit
Mehrauf den E-Book-Reader
Von der Stand: Januar 2013 auf den E-Book-Reader Ausleihen und Nutzen von E-Books auf einem E-Book-Reader Das ist dank des EPUB-Formats lesefreundlich möglich. Dieses Format passt sich den verschiedenen
MehrLizenzierung von Windows Server 2012
Lizenzierung von Windows Server 2012 Das Lizenzmodell von Windows Server 2012 Datacenter und Standard besteht aus zwei Komponenten: Prozessorlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrInstallation älterer Programmversionen unter Windows 7
Installation älterer Programmversionen unter Windows 7 Obwohl nicht explizit gekennzeichnet, sind alle MAGIX Produkte mit einer 15 im Namen, sowie MAGIX Video Pro X 1.5, Filme auf DVD 8 und Fotos auf CD
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrPCtoK1 Lizenzmanagement
PCtoK1 Lizenzmanagement Das Programmpaket PctoK1 ist eine hochentwickelte und leistungsfähige Software für die Konvertierung von Geometriedaten in Maschinendaten. Dabei unterliegt die Software einer ständigen
MehrWorkshop: Eigenes Image ohne VMware-Programme erstellen
Workshop: Eigenes Image ohne VMware-Programme erstellen Normalerweise sind zum Erstellen neuer, kompatibler Images VMware-Programme wie die Workstation, der ESX-Server oder VMware ACE notwendig. Die Community
Mehr