Qt-Creator auf Ubuntu 20 LTS für Cross-Compile konfigurieren

Einführung

Dies ist eine Anleitung für die Konfiguration des Qt-Creator um cross-compilierte Qt-Libraries für den Raspberry Pi 4 verwenden zu können und Anwendungen für den Raspberry zu erstellen.

Voraussetzungen

Raspberry Pi OS Lite

Installieren Sie Raspberry Pi OS Lite auf einem Raspberry Pi 4 oder wie in meinem Blogpost Raspberry Pi OS auf dem Raspberry Compute Module 4 installieren beschrieben, auf einem Raspberry Compute Module 4.

Qt 5.15.2 auf Ubuntu 20 LTS

Konfigurieren Sie Raspberry Pi OS Lite auf einem Raspberry Pi 4 oder wie in meinem Blogpost Raspberry Pi OS auf dem Raspberry Compute Module 4 installieren und erstellen Sie die Qt-Libraries wie in meinem Blogpost Qt 5.15 cross compile für Raspberry Compute Module 4 auf Ubuntu 20 LTS.

Konfiguration Qt-Creator

Sie sollten einen funktionierenden Qt-Creator auf einem Ubuntu 20 installiert haben. Anleitungen dazu finden Sie bei Qt oder in den verschiedensten Foren oder Tutorials.
Außerdem sollten Sie - wie in den Voraussetzungen beschrieben - einen Raspberry Pi 4 oder ein Raspberry Compute Modul 4 mit Raspberry Pi OS Lite und den entsprechenden Qt-Libraries, einen Cross-Compiler und die cross-compilierten Libraries für den Raspberry Pi 4 erstellt haben.
Die im Anschluss für die verschiedenen Konfigurationen verwendeten Pfade entsprechen den Pfaden aus den beiden vorausgegangenen Blogposts.
Meine verwendete QtCreator-Version ist die Version 4.13.3.

Device erstellen

Im ersten Schritt legen wir ein neues Device an. Dazu im Menü unter "Tools" "Options" aufrufen und in der linken Spalte "Devices" auswählen. Dann mit "Add" ein neues Device "Generic Linux Device" erzeugen. Dem Device einen Namen vergeben - hier RaspberryPi4-Qt-5.15 -, bei "Host name" die IP-Adresse eingeben und unter "Username" für den Raspberry typischerweise "pi" eingeben.
Anschließend kann man mit dem Button "Test" die Verbindung zum Raspberry testen. Sollte hier nicht "Device test finished successfully." zurückgegeben werden, müssen Sie die Einstellungen überprüfen und testen, ob der Raspberry wirklich mit diesen Parametern erreichbar ist.

QtCreator Device Configuration

Compiler konfigurieren

Im zweiten Schritt müssen wir die Pfade für die C und C++ Compiler festlegen. Die Einstellungen dazu finden wir wieder im Menü "Tools -> Options" unter "Kits -> Compilers".
Wir verwenden hier die Compiler, die wir mit dem Cross-Compiler "gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf" heruntergeladen haben.
Mit "Add -> GCC -> C" bzw. "Add -> GCC -> C++" zwei neue Konfigurationen hinzufügen. Dazu für C im Verzeichnis "tools" "gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc" und für C++ "gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++". Jeweils einen Namenn vergeben und fertig ist diese Einstellung.

QtCreator Compiler Configuration

Qt-Version erstellen

Im dritten Schritt benötigen wir die cross-compilierte qmake-Datei aus dem vorherigen Blogpost. Die Einstellungen dazu finden wir wieder im Menü "Tools -> Options" unter "Kits -> Qt Versions".
Wieder mit "Add" eine neue Konfiguration hinzufügen und mit dem "Browse"-Button die qmake-Datei aus dem Verzeichnis "qt5.15/bin/qmake" auswählen.

QtCreator Version Configuration

Kit erstellen

Im letzten Schritt werden die neu hinzugefügten Konfigurationen zu einem neuen Kit zusammengefügt. Die Einstellungen dazu finden wir im Menü "Tools -> Options" unter "Kits -> Kits".
Wieder mit "Add" eine neue Konfiguration hinzufügen und bei

  • Name: einen eigenen Namen vergeben (mit diesem wird später unter den "Project"-Einstellungen das Device ausgewählt)
  • Device type: "Generic Linux Device"
  • Device: das neu erstellte Device auswählen
  • Sysroot: das im vorigen Blogpost erstellte sysroot-Verzeichnis auswählen
  • Compiler: die beiden neu erstellten Compiler auswählen
  • Qt-Version: die neu erstellte Qt-Version auswählen
QtCreator Kit Configuration

Project-Einstellungen

Das neu erstellte Kit kann nun beim Erstellen eines neuen Projects sofort ausgewählt und zugewiesen werden oder einem bereits existierenden Project hinzugefügt werden.

QtCreator Project Configuration