Trash Fr:Qt/Embarqué

From ArmadeusWiki
Revision as of 13:56, 12 May 2008 by Carbure (Talk | contribs) (How to cross-compile an application with Qtopia)

Jump to: navigation, search

Instructions pour installer et utiliser QtEmbedded & Qt virtual frame buffer pour la carte Armadeus

Introduction

Cette page résumera le processus de build, installation et utilisation de Qtopia.

Vous trouverez également les instructions pour installer un environnement de développement hôte afin de simuler les applications avant de les déployer sur la cible (Qt virtual frame buffer). L'arborescence du Buildroot doit être installée avant l'installation de Qt.

Conditions requises

Vous devez installer la libc++ sur votre cible. Si vous voulez utiliser le module GUI de Qt, vous devez avoir le paquet libpng (sélectionnez-le dans le menuconfig dans buildroot).

Obtenir les paquets

Vous devez récuperer les paquets qtopia-core-opensource-src-4.2.0.tar.gz & qt-x11-opensource-src-4.2.0.tar.gz depuis le serveur ftp de la société Trolltech en tant qu'utilisateur anonyme (pas de mot de passe).

# ftp ftp.trolltech.com
# Name (ftp.trolltech.com:user): anonymous
# cd /qt/source
# get qtopia-core-opensource-src-4.2.0.tar.gz
# get qt-x11-opensource-src-4.2.0.tar.gz
# quit

ou utilisez la commande wget:

# wget --user=anonymous ftp.trolltech.com:/qt/source/qtopia-core-opensource-src-4.2.0.tar.gz
# wget --user=anonymous ftp.trolltech.com:/qt/source/qt-x11-opensource-src-4.2.0.tar.gz

Installation

A partir de maintenant, nous considérons la variable ARMADEUS_ROOT_DIR comme étant la racine du répertoire du snapshot SVN du projet Armadeus sur votre ordinateur.

Copiez et décompressez les paquets téléchargés dans votre dossier d'installation appelé qt_installs:

# cd $ARMADEUS_ROOT_DIR
# mkdir qt_installs
# cp $DOWNLOAD_FOLDER/qtopia-core-opensource-src-4.2.0.tar.gz   \ 
   $DOWNLOAD_FOLDER/qt-x11-opensource-src-4.2.0.tar.gz $ARMADEUS_ROOT_DIR/qt_installs
# tar fxz qtopia-core-opensource-src-4.2.0.tar.gz
# tar fxz qt-x11-opensource-src-4.2.0.tar.gz

Tout d'abord, vous pouvez installer/mettre à jour Qt 4.2 sur votre système s'il n'est pas encore installé parce que vous avez besoin des outils Qt( le designer par exemple ....). De plus, vous devez compiler et installer les outils qvfb et qconfig tools. ....

# cd qt-x11-opensource-src-4.2.0
# ./configure
# make
# su root
# make install
# cd tools/qvfb/ ; make
# install -m 755 -p ../../bin/qvfb /usr/local/Trolltech/Qt-4.2.0/bin
# cd ../qconfig ; make
# install -m 755 -p qconfig /usr/local/Trolltech/Qt-4.2.0/bin 
# make confclean

Ensuite, en tant qu'utilisateur, configurez, compilez le paquet Qtopia pour l'installation du virtual frame buffer. Une fois accompli, installez-les tous dans le dossier $ARMADEUS_ROOT_DIR/qt/qvfb .

# cd qtopia-core-opensource-src-4.2.0
# ./configure -depths 8,16,32 -no-cups -release  -qvfb -prefix \
   $ARMADEUS_ROOT_DIR/qt/qvfb -no-qt3support
# make
# su root
# make install
# make confclean

Maintenant, en tant qu'utilisateur, l'essentiel: Qtopia

# ./configure -embedded arm -little-endian -depths 8,16,32 -no-cups -release \
   -fast -qconfig medium -prefix $ARMADEUS_ROOT_DIR/qt/qtopia.4.2.0
# make
# make install

Remarque: la compilation/installation des démos de Qtopia pourrait ne pas marcher, mais toutes les library Qt sont bien faites.

Pour installer une ou plusieurs configuratiosn differentes, lisez svp la documentation Qt inclue pour comprendre les différentes option de configuration. Je conseille de préserver le dossier d'installation qt_installs/qtopia-core-opensource-src-4.2.0 . En effet, vous pourriez installer Qtopia dans les situatiosn suivantes:

  • Vous utilisez une nouvelle version du compilateur arm-linux-g++
  • Vous avez besoin de plusieurs installation parce que vous travaillez sur différents projets ( Par exemple, les propriétés du LCD sont différentes).
  • Vous voulez ajouter le support de Qt3
  • vous voulez réajuster la taille des library Qt afin d'avoir plsu d'espace sur votre rootfs.

Utilisation

Par défaut, Qt est installé dans le répertoire /usr/lib du rootfs de votre cible. Avant de lancer Qt sur votre cible, vous devrez mettre les bonnes valeurs aux variables d'environnement suivantes: QTDIR, LD_LIBRARY_PATH, etc... A compléter ......

Comment cross-compiler une application Qtopia

Après la compilation du package Qtopia, il faut définir un répertoire de configuration de qmake. Exemple:

mkdir $APPLICATION_ROOT_DIR/mkspecs/linux-arm-g++

Ensuite, installez les deux fichiers suivants dans ce répertoire nouvellement crée: qmake.conf & qplatformdefs.h. Le fichier Qmake.h peut être customisé si nécéssaire...


Avant toute compilation il est nécessaire de définir 2 variables: QTDIR qui défini le répertoire d'installation de Qtopia & QMAKESPEC qui défini le répertoire de configuration de qmake

Si vous passezpar un script de compilation vous pourrez mettre les 2 lignes suivantes (en les adaptant à vos besoins bien sûr!)

export QTDIR=/home/demo/demos/Buitinqt/buildroot/build_arm/qtopia-core-opensource-src-4.3.1/
export QMAKESPEC= $APPLICATION_ROOT_DIR/mkspecs/linux-arm-g++

Pour contruire le Makfile et cross compiler votre application Qtopia, utilisez les commandes suivantes:

# build the makefile with the qmake command (See Trolltech documentation for details about qmake):
qmake -spec $QMAKESPEC my.pro
# and now compile the beast... :
make

Good luck....

Travail en cours / liste "to do"

  • installation de la cible = integration au Buildroot
  • exemples & demos
  • Personnalisation des libs de Qt pour avoir une library Qt/E personnalisée bien conçue pour une utilisation sur la carte Armadeus.

Liens