Komponenten

Multiplattform-Entwicklung mit dem Qt-Framework

22.11.16 | Autor / Redakteur: Hendrik Sattler * / Franz Graser

Multiplattform-Entwicklung: Viele Entwickler programmieren ihre Embedded-Applikationen für verschiedene Zielsysteme. Mit dem Qt-Framework lässt sich der Aufwand hier deutlch reduzieren.
Multiplattform-Entwicklung: Viele Entwickler programmieren ihre Embedded-Applikationen für verschiedene Zielsysteme. Mit dem Qt-Framework lässt sich der Aufwand hier deutlch reduzieren. (Bild: © hvostik16/Fotolia.com)

Plattformunabhängigkeit wird in zunehmendem Maße von Anwendungen gefordert. Das C++-Framework Qt erlaubt es, Applikationen zu entwickeln, die gleichermaßen unter Windows und Linux laufen.

Das Framework Qt erlaubt es, Programme zu erstellen, die gleichermaßen unter Windows und Linux laufen können. Dies bedeutet Plattformunabhängigkeit im weitesten Sinne. Szenarien für den Bedarf und Einsatz dieser Möglichkeit gibt es viele, etwa die grafische Benutzeroberfläche (User Interface, UI) eines unter Linux laufenden Geräts, die als Windows-Programm simuliert wird und so auch Windowsusern zur Verfügung steht, oder Kollaborationswerkzeuge, die ebenfalls nicht auf Windows-Nutzer als Zielgruppe beschränkt bleiben sollen. Zur Sicherstellung dieser Plattformunabhängigkeit werden verschiedene Ansätze zur Anwendung gebracht. Während für die UI-Simulation ein möglichst gleiches Aussehen sinnvoll erscheint, sollen Kollaborationswerkzeuge sich gut in die Desktop-Umgebung einpassen.

Startet man in der Softwareentwicklung mit einem neuen Projekt oder portiert ein vorhandenes Programm auf andere Compiler oder Plattformen, dann stehen am Anfang oft schon die Compiler selbst im Weg.

Compiler und andere Entwicklungswerkzeuge

Der Compiler von Visual Studio C++ beispielsweise ist nur unter Windows verfügbar, während unter Linux eher der GNU-Compiler (gcc) oder alternativ LLVM/clang verwendet wird. Bei allen diesen Compilern kann es vorkommen, dass im zu portierenden Code Fehler an bestimmten Stellen angemerkt werden, die bei anderen Compilern anstandslos durchlaufen.

Weitere Komplikationen können durch die Verwendung compilereigener Features im zu portierenden Code entstehen. Für solche Probleme bietet Qt in gewissem Umfang Hilfsmakros an, da Qt selbst den Anspruch hat, mit einer Vielzahl unterschiedlichster Compiler arbeiten zu können. Der Weg von Qt5 hin zur Nutzung von modernem C++11 ändert diese Ausrichtung ein wenig, was die erforderlichen Compiler-Features angeht, somit auch die unterstützten Versionen.

Für einen komplexen Build-Prozess zur Generierung von Programmen muss auch dessen Verwaltung betrachtet werden. Mit dem unter Windows gebräuchlichen Visual Studio werden MSBuild-Projekt-Dateien verwendet, während das unter Linux übliche GNU make mit Makefile-Dateien arbeitet. Hier bieten sich als Abstraktionsschicht die Meta-Build-Tools qmake oder CMake an, da sie beide sowohl Makefiles als auch Visual-Studio-Projekte generieren können. Während qmake mit Qt direkt mitgeliefert wird, wird CMake seit Qt5 explizit unterstützt und wird in vielen Qt-basierten Projekten verwendet.

Ergänzendes zum Thema
 
Erst prüfen, dann implementieren

Mit diesen Meta-Build-Tools ist es möglich, die Build-Regeln für verschiedene Plattformen nur an einer Stelle zu verwalten. Die Kommandozeilen-Frontends der Compiler, Linker und anderer SDK-Tools unterscheiden sich in der Regel deutlich. Die Programme und ihre Parameter zur Erstellung statischer oder dynamisch gelinkter Bibliotheken, zur Laufzeit geladener Module oder Programmdateien können stark variieren. Auch hier sind solche Meta-Build-Tools hilfreich, indem sie die Nutzung der SDK-Tools abstrahieren und damit vereinheitlichen

Zusätzlich werden oft eigene Tools verwendet, um z.B. Code zu generieren. Bei diesen Tools muss man sich während der Portierung ebenfalls um die Plattformunabhängigkeit kümmern, kann dafür aber durchaus zu denselben Mitteln greifen.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44363830 / Embedded Software Entwicklungswerkzeuge)

Embedded Software Engineering Report abonnieren

4 mal jährlich: Die kostenlose Pflichtlektüre für Embedded­-Software- und Systems-Entwickler, von Analyse bis Wartung und Betrieb

* Ich bin mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung und AGB einverstanden.
Spamschutz:
Bitte geben Sie das Ergebnis der Rechenaufgabe (Addition) ein.