web-dev-qa-db-fra.com

Est-il possible de compiler des programmes Qt5, écrits en c ++, sur Ubuntu Touch?

Je crée un programme avec Qt5 et C++, et j'aimerais compiler mon programme pour Ubuntu Touch Preview ou Ubuntu Desktop Arm.

J'utilise ces systèmes sur Nexus 7. J'ai trouvé le bon compilateur C++ (arm-linux-gnueabihf-g++), mais comment puis-je faire fonctionner Qt5?

8
Johannes

Le moyen facile

Vous pouvez utiliser une fonctionnalité expérimentale d'Ubuntu SDK Alpha. La beauté de ceci est que vous n'avez pas besoin de compiler de manière croisée.

Commencez par vous connecter à votre appareil:

  1. Branchez votre appareil sur le port USB de votre ordinateur
  2. Démarrer Qt Creator
  3. Cliquez sur l'onglet appareils
  4. Cliquez sur le bouton Activer pour activer le mode développeur
  5. Allez dans Outils> Ubuntu> Périphérique> Activer> Compilation Cpp sur un périphérique Ubuntu (expérimental)

Puis commencez le piratage:

  1. Ouvrez le projet de votre application dans Qt Creator.
  2. Allez à Construire> Ubuntu> Construire un projet C++ sur un périphérique Ubuntu (expérimental)

Building C++ Touch projects on the device

Et c'est parti! :-)

Si vous aimez les défis

Vous pourriez éventuellement compiler les applications sur l'appareil à la main. Vous voudrez peut-être essayer les étapes suivantes (non testées):

  1. SSH dans votre appareil exécution de l'aperçu du développeur Ubuntu Touch
  2. Installez les packages de développement requis. Selon vos besoins, vous devrez peut-être ajouter des packages à la liste, mais voici un premier aperçu:

    Sudo apt-get install qt5-default qtbase5-dev libqt5v8-5-dev qtdeclarative5-dev libqt5xmlpatterns5-dev qtscript5-dev qttools5-dev qt3d5-dev qtmultimedia5-dev libqt5svg5-dev qtdeclarative5-dev-tools qttools5-dev-tools qtlocation5-dev qtsensors5-dev qtpim5-dev qt-components-ubuntu

  3. Construisez votre application C++ avec le système de construction de votre choix (cmake, qmake, etc ...)

11
David Planella

Il y a une autre suggestion (troisième voie, mais difficile):
1. obtenir chaîne d'outils linaro pour armhf
2. obtenir libhybris et platform-api (de l’équipe phablet de launchpad.net)
3. récupère les bibliothèques dynamiques depuis device (/ lib/arm-linux-gnueabihf et / usr/lib/arm-linux-gnueabihf /)
4. pièce mkspecs pour qmake
5. compiler
6. ajouter <votre_app> .desktop déposer dans / usr/share/applications /
sept. ajouter des lignes à /usr/share/qml-phone-Shell/Applications/applications.js (peut être facultatif, je pense)
8. Poussez votre application et vos ressources
9. redémarrer Shell ou téléphone
dix. Votre application a travaillé! (J'ai testé ça!)

3
user135193

Instruction étendue fondée sur la réponse précédente. Gardez à l'esprit: cette instruction décrit le développement de Qt/Qml sur PC pour Ubuntu Touch sans connexion ssh avec le périphérique et nécessite outil de compilation croisée comme linaro.

PARTIE 1: créer un environnement

  1. Obtenir Ubuntu SDK
  2. Obtenir la chaîne d'outils: Linaro ou wia Sudo apt-get installer gcc-arm-linux-gnueabihf installer la chaîne d'outils et ses dépendances.
  3. Obtenez ces deux bibliothèques libhybris et platform-api plus les bibliothèques Qt5 pour armhf (peut être obtenu à partir du périphérique) ou simplement télécharger tarball avec toutes les bibliothèques (depuis tarball vos libs et en-têtes nécessaires, mettez-les à / usr/arm-gnueabihf/lib et / usr/arm-gnueabihf/include).
  4. Obtenir modifié qmake config - ce n'est pas pareil dans mkspecs (par exemple, le mien à / usr/share/qt5/mkspecs /). Dans le répertoire non visible - qmake.conf. Si quelque chose manque à la compilation - il faut modifier la variable de chemin dans ce fichier.
  5. Pour Qt Creator créer un nouveau profil de compilation: dans Compilation et déploiement ​​paramètres, onglet Compilateur - ajouter un nouveau compilateur (arm-linux -gnueabihf-gcc), onglet Outils - ajoute un nouveau profil et spécifie Type de périphérique - Dispositif linux général, Compilateur - uns , que vous soyez ajouté Profile Qt ​​- générique (je n'utilise pas de Qt recompilé !!!), Qt mkspec - linux-arm-gnueabihf-gcc. C'est tout ce dont vous avez besoin pour compiler. Pour le débogage - il faut spécifier d'autres paramètres. Et à côté, mieux vaut recompiler Qt à partir de sources. Mais je suis paresseux alors)

PARTIE 2: déploiement de l'application

  1. Wia adb Push/data/ubuntu/<chemin_certain> App Push et des ressources. OS peut les trouver à / <some_path>. Remarque, il n'y a pas / data/ubuntu partie. Cette partie est nécessaire uniquement par adb.
  2. Ensuite, besoin de faire <nom_app> .desktop fichier:
    • adb root
    • adb Shell
    • ubuntu_chroot Shell - basculer vers bash sur l'appareil
    • cd/usr/share/applications - aller dans le dossier avec les fichiers * .desktop
    • Copiez n’importe lequel d’entre eux et éditez (avec vi) dans le but de votre application (nom, icône, chemin, e.t.c.)
  3. Prochaine étape, identique à la précédente (vous êtes déjà en bash à l'appareil):
    éditer le fichier (avec vi/usr/share/qml-phone-Shell/Applications/applications.js, ajoutez une partie pour votre application dans un fichier, comme dans les autres applications. Ce doit être pareil que dans <nom_app> .desktop fichier
  4. Redémarrer Shell (en tuant qml-phone-shell processus) ou redémarrez le téléphone (redémarrer -p)
  5. Maintenant, vous pouvez lancer votre application à partir de Applications page!

Exemple de test et matériaux d'origine: instruction EN et instruction R avec des liens pour la chaîne de téléchargement et les bibliothèques essentielles.

1
Dmitry Zagnoyko