DÉVELOPPEMENT
Installer Qt sous Mac OS X ................................. p. 62
SNous vous avons présenté dans un précédent article Qt, une bibliothèque graphique C++ disponible séparément ou avec son propre IDE, Qt Creator. Nous allons voir maintenant comment installer Qt sous Mac OS X afin de créer des applications C++, histoire de changer un peu et de ne pas développer qu’en Objective-C.
i le langage Objective- C est le langage de prédilection mis en avant par Apple pour développer des applications pour les plates-formes Mac OS X et iOS, il n’est fort heureusement pas le seul disponible. Vous pouvez créer – ou porter – des applications en C# et C++, notamment, même si l’IDE fourni par Apple n’est pas configuré par défaut pour le faire. Nous allons voir dans cet article comment installer la bibliothèque C++ Qt sous Mac OS X afin de l’utiliser avec XCode, l’IDE d’Apple, ainsi que Qt Creator, l’IDE totalement adapté à Qt.
Installer Xcode
En tout premier lieu, si ce n’est pas déjà fait, vous devez installer Xcode. Celui-ci est disponible en téléchargement gratuit sur l’Apple Store. Vous devez néanmoins posséder la version Lion (ou Mountain Lion) de Mac OS X. Si ce n’est pas le cas, vous allez devoir acheter au préalable une mise à jour vers une de ces deux versions ou ouvrir un compte Apple Developer payant. C’est une contrainte imposée par la politique commerciale d’Apple, et non une véritable contrainte technique, la firme à la Pomme ayant décidé il y a déjà quelque temps de ne plus laisser sur l’Apple Store les anciennes versions de Xcode fonctionnant sur les autres versions de Mac OS X. Eh oui, tout est bon pour gagner de l’argent et fermer le système, même au détriment des développeurs dont la communauté a pourtant été – et est encore – le fer de lance de la marque et a largement contribué à son expansion. Le succès de l’iPhone n’aurait jamais été aussi important s’il n’y avait pas autant d’applications disponibles sur l’Apple Store. Certes, l’idée est sortie du cerveau du génial et malheureusement défunt Steve Jobs, mais elle n’aurait été qu’une idée sans conséquence sans la foultitude de développeurs qui se sont lancés dans l’aventure. Après être passé à la caisse si vous utilisiez encore, rétrograde que vous êtes…, un vieux félin du style Leopard, rendez-vous sur l’Apple Store. Il y a cependant une autre option envisageable : Xcode est normalement présent sur le DVD d’installation de Mac OS X, pour peu que celui-ci vous ait été fourni avec votre machine, ou que ce soit le cas d’une de vos connaissances.
Installer un compilateur C++
Pour pouvoir utiliser Qt et compiler vos fichiers sources C++, vous devez au préalable installer un compilateur C++. Ceci est également vrai si vous souhaitez créer des applications, des classes et/ou des bibliothèques C++ « classiques ». Le principe est identique sur les plates-formes Linux et Windows, sauf que sur Mac OS X cette installation n’est pas réalisée automatiquement avec celle de l’IDE d’Apple, Xcode, ni d’ailleurs avec celle de Qt. Vous devez le faire séparément, de préférence avant l’installation de Qt Creator ou de la bibliothèque Qt si vous préférez créer et compiler vos projets C++ avec Xcode. Dans le cas contraire, vous pourrez tout de même installer Qt, mais du coup la commande make ne sera pas reconnue en tant que commande interne et vous ne pourrez pas compiler, ce qui est tout de même un peu ennuyeux. Voici ce que dit la documentation de Qt à ce sujet : On Mac OS X, the binary package requires Mac OS X 10.4.x (Tiger) or later and GCC 4.0.1 to develop applications. Its applications will run on Mac OS X 10.3.9 and above. C’est on ne peut plus clair, bien que la documentation en question ne précise pas comment faire pour installer un compilateur C++, et c’est bien dommage. Rassurez-vous, ce n’est pas très difficile, même si ce n’est ni intuitif, comme vous allez le voir, ni clairement documenté. Sous Windows ou Linux – au moins sur la plupart des distributions, car Mac OS X est, ne l’oublions pas, une espèce de Linux propriétaire – il suffit d’installer un ou plusieurs compilateurs C++. Ensuite, la plupart des IDE (Code::Blocks, Eclipse et autres) détecteront ce ou ces compilateurs ou, au pire, vous devrez spécifier leur emplacement. Sous Mac OS X, il faut, encore et toujours, passer par l’incontournable Xcode. Après l’avoir lancé, sélectionnez depuis le menu de Xcode Préférences puis cliquez sur l’icône Downloads. Dans la liste qui s’affiche, sélectionnez Command Line Tools et cliquez à droite sur Install. Après cette petite opération, plusieurs compilateurs C++ sont installés et rendus disponibles sur votre machine.
Installer Qt
Nous allons pouvoir passer au téléchargement de Qt. Pour ce faire, allez sur le site du projet à l’adresse http:// qt-project.org/downloads et sélectionnez la version pour Mac OS X. Qt Creator est disponible aussi bien pour Linux 32 ou 64 bits, Mac et Windows (32 bits seulement). Vous pouvez aussi, si vous le préférez, téléchar-
ger le code source sous forme de fichier zip pour Windows et tar.gz pour Linux et Mac. Dans ce cas, vous devrez le recompiler vous-même, comme pour les applications et systèmes d’exploitation Linux. Ce n’est pas la solution la plus simple, mais c’est bien évidemment la plus modulable. Une troisième option est envisageable : télécharger uniquement les bibliothèques QT en vue de les utiliser avec Xcode, comme nous l’avons évoqué. Une fois Qt Creator téléchargé, cliquez sur la pile de Téléchargements et sélectionnez : qt-creator-mac-opensource. La page d’avertissement traditionnelle s’affiche. Ignorez là – comme d’habitude – et cliquez sur Ouvrir. L’installation à proprement parler peut commencer. Si, à la fin de l’installation, le message You need a C++ Compiler apparaît, ce n’est pas simplement, comme le dit le message, parce que vous n’avez pas installé la dernière version de Xcode. Vérifiez tout de même ce point. Rendez-vous à cette fin sur l’Apple Store. Tapez Xcode dans la zone de recherche. La page proposant le téléchargement de Xcode doit alors s’afficher. Si vous avez Installé comme information à droite de Xcode, c’est que vous possédez déjà la dernière version. Si ce n’est pas le cas, c’est-à- dire si vous voyez à la place Mettre à jour, cliquez dessus et procédez à la dite mise à jour. Dans les deux cas de figure, il vous faut tout de même procéder à l’installation d’un compilateur C++. Suivez pour cela les instructions spécifiées précédemment dans cet article, dans la partie Installer un compilateur C++. Pour désinstaller la version binaire de Qt, vous pouvez exécuter le script uninstall-qt.py qui se trouve dans le dossier / Developer/ Tools. Celui-ci doit être lancé en tant que root.
Lancer Qt Creator
Une fois l’installation terminée et, le cas échéant, les compilateurs C++ installés avec les autres Command Line Tools, essayez de lancer Qt Creator. Vous devriez alors arriver sur l’écran d’accueil. Sinon, cliquez sur Accueil en haut à gauche de la fenêtre de Qt Creator. Cliquez sur Aperçu de l’EDI pour avoir une présentation générale de l’environnement de développement. La version précédente de Qt Creator, la 4.x, était déjà plutôt agréable à utiliser, mais celle-ci, il faut bien l’avouer, l’est encore plus. La documentation est bien plus riche, les exemples boggués ont été pour la plupart corrigés, son utilisation est bien plus intuitive et elle arrive avec un plus grand nombre de tutoriels. Vous pouvez cliquer sur une des parties de l’écran central : Managing Projects, Designing User Interfaces, Coding… ou sur l’un des éléments de la liste de gauche : Active Qt, Qt Core, Qt GUI, etc.
Difficile de faire mieux en termes de documentation, à part bien sûr le célèbre man de Linux. Revenez sur l’Accueil en cliquant à nouveau sur l’icône du même nom en haut à gauche puis sur User Interface pour, cette fois, une description détaillée de l’interface utilisateur. Revenez à l’écran précédent et cliquez sur Compiler et exécuter une application d’exemple. L’écran suivant vous explique comment compiler et exécuter un des exemples fournis avec Qt Creator. Pour accéder aux tutoriels, revenez à l’écran d’accueil et cliquez sur le lien Tutoriels en haut à droite. Qt vous propose une quinzaine de tutoriels sur des sujets différents : compilation et exécution d’un programme, création d’un Qt Quick, création d’une application à base de Widget, Roadmap, QML, QtWebKit, etc.
Paramétrer Qt Creator
Nous allons maintenant vérifier les paramètres de Qt Creator. Cliquez sur Préférences depuis le menu principal de Creator. Sélectionnez ensuite, si vous n’arrivez pas directement dessus, Compiler & Exécuter dans la partie gauche de la fenêtre et cliquez sur l’onglet Kits. Sélectionnez enfin Desktop. Cliquez sur la ligne Compiler et sélectionnez un compilateur dans la liste. Vous avez le choix entre GCC et Clang, pour architecture x86 ou Power PC (répondant au doux acronyme de pp) et soit en 32, soit en 64 bits ( 8 choix possibles, au total). Ne choisissez pas au hasard, évidemment, mais en fonction de la plate-forme cible sur laquelle doit s’exécuter votre application. Si ces cibles sont multiples, vous devrez recompiler votre projet pour chacune d’entre elles.
Installer Qt à partir des sources
Maintenant que vous savez installer Qt avec la version binaire, nous allons voir comment procéder à partir des fichiers sources. Notez au passage que le simulateur de l’iPhone ne doit pas être en cours d’exécution pendant l’installation de Qt – quel que soit le mode employé, binaire ou sources. Sinon, il rentrera en conflit avec le programme d’installation de Qt et vous serez bon pour tout recommencer depuis le début. Xcode peut, lui, être déjà en cours d’exécution sans que cela ne pose de problème particulier. Si vous avez acheté une édition commerciale de Qt, vous devrez installer votre fichier de licence en tant que $ HOME/.qt-license. La version Open Source ne nécessite bien évidemment pas de fichier de licence – il ne manquerait plus que ça...
Décompresser le fichier d’archive
Commencez par décompresser le fichier d’archive. Si, par exemple, vous avez téléchargé le package qt-everywhere-opensource-src-5.0.1.tar.gz, tapez les commandes suivantes en ligne de commande : cd / tmp # déplacement dans le dossier / tmp gunzip qt- everywhere- opensource-src- 5.0.1.tar.gz # décompression de l’archive tar.gz tar xvf qt- everywhere- opensource-src- 5.0.1.tar # désarchivage du .tar Cette commande crée le dossier /tmp/qt-everywhereopensource-src-5.0.1 et y ajoute les fichiers de l’archive.
Construire la bibliothèque Qt
Pour configurer la bibliothèque Qt adaptée à votre machine, exécutez le script ./configure qui se trouve dans le dossier du package. Par défaut, Qt est configuré pour s’installer dans le dossier /usr/local/ Trolltech/Qt-5.0.1, mais vous pouvez changer cela grâce à l’option -prefix. cd /tmp/qt-everywhere-opensource-src-5.0.1 ./configure Vous pouvez taper./configure -help afin d’obtenir la liste des options disponibles pour cette commande. Vous devez spécifier le flag -universal si vous souhaitez créer des binaires universels, et spécifier un chemin ( path) à l’option -sdk si vous développez sur une machine équipée d’un processeur PowerPC. Qt sera généré par défaut sous forme de framework, mais vous pouvez changer la donne et le générer sous la forme d’un ensemble de bibliothèques dynamiques (dylibs) en spécifiant l’option -no-framework. Pour créer la bibliothèque et compiler tous les tutoriels, démonstrations, exemples et outils divers, tapez simplement : make
Paramétrer les variables d’environnement
La variable d’environnement PATH doit être modifiée pour une bonne utilisation de Qt, plus précisément afin de pouvoir localiser qmake, moc et les autres outils Qt. Il vous faut pour cela ajouter les lignes suivantes : dans le fichier .profile si vous utilisez un shell bash : PATH=/usr/local/ Trolltech/Qt-4.8.4/ bin:$PATH export PATH dans le fichier .login pour les shell csh et tcsh : setenv PATH /usr/local/ Trolltech/Qt-4.8.4/ bin:$PATH
Compiler en ligne de commande
Vous pouvez compiler les sources directement à partir du terminal en invite de commande, comme sous Windows ou avec une distribution Linux, à l’aide de la commande make. Rappelons au passage que Mac OS X n’est rien d’autre qu’un Linux propriétaire issu d’un noyau BSD – Darwin, pour
être précis. Sous Windows, si vous utilisez le compilateur de Microsoft ( Visual C++), la commande équivalente est nmake.
Créer un fichier source
Plutôt que de créer des fichiers n’importe où, au petit bonheur la chance – le plus souvent sur le bureau –, il est préférable de créer directement un dossier pour votre projet, comme par exemple QtProjects dans le dossier / Developer. Créez encore un sous-répertoire, SalutMonde, par exemple. Évitez de créer des noms de fichiers et de dossiers comportant des espaces. Même si le système d’exploitation le permet, cela complique généralement leur accès et leur gestion. Commencez par créer un document texte avec l’éditeur de votre choix, comme TextEdit ou Latex par exemple – mais surtout pas avec un traitement de texte de type Word ! – et enregistrez-le sous le doux nom de main.cpp. Saisissez le code ci-dessous avant de l’enregistrer : /* main.cpp - fichier principal du projet */ #include <QApplication> #include <QPushButton> int main( int argc, char *argv[]) { QApplication app(argc, argv); // Pour changer un peu du sempiternel Hello World... QPushButton button("Salut à toi, Oh Monde!"); // Bon, c’est vrai, cela ne change guère en fait... button.show(); return app.exec(); } Certes, il y a plus complexe comme programme, mais il faut bien commencer par quelque chose, et cela permet de poser les bases d’utilisation de Qt.
Créer le fichier de projet et lancer la compilation
Nous allons maintenant créer le fichier du projet à l’aide de la commande qmake, le make de Qt capable de traiter les macros qui lui sont propres – attention : nous ne parlons pas, vous l’avez compris, des macros du préprocesseur. Qt fonctionne avec une sorte de pré-préprocesseur – non, non, il n’y a pas de pré en trop –, le moc ou méta-objet compiler. Ouvrez le terminal du Spotlight ou de / Applications/Utilities. Déplacez-vous dans le dossier / Developer/QtProjects/SalutMonde en tapant dans le terminal la commande suivante : cd / Developer/QtProjects/SalutMonde Tapez ensuite les commandes ci-dessous : qmake -project Cela a pour effet de créer le fichier de projet. Si aucune option n’est précisée, le fichier s’appellera, par défaut, SalutMonde.pro. qmake -spec macx-g++ Cette deuxième ligne va créer le fichier makefile du projet make Tout seul, sans aucune option, la commande make va compiler le projet et générer l’exécutable dans le même dossier que celui où se trouvent les sources.
Options de la commande qmake
Attardons-nous quelque peu sur les options de la commande qmake employées. Pour obtenir une liste exhaustive et détaillée des options disponibles pour cette commande, nous vous renvoyons à sa documentation qui se trouve sur le site de Trolltech / Nokia. Comme spécifié dans la dite documentation, le comportement par défaut de qmake consiste à générer un fichier Makefile. Nous avons vu qu’il permettait également de générer des fichiers de projet. L’action visant à générer un fichier de projet ou un Makefile est appelé le mode en langage nokiesque – ou Trolltechien ? La première exécution de la commande qmake utilisant l’option -project spécifie de façon explicite la création d’un fichier de projet (.pro). La deuxième exécution utilise l’option -spec. Voyons un peu ce qu’en dit la documentation : -spec spec qmake will use spec as a path to platform and compiler information, and the value of QMAKESPEC will be ignored Ce qui nous renvoie à la documentation de QMAKESPEC : The name of a platform-compiler combination. In this case, qmake will search in the directory specified by the mkspecs subdirectory of the data path specified when Qt was compiled (see QLibraryInfo::DataPath). Il ne reste donc plus qu’à trouver la combinaison plateforme/compilateur supportée sous Mac OS X. Vous l’avez sans doute deviné, il s’agit de macx-g++. Voici une autre note extraite de la documentation concernant les plates-formes ou, si vous préférez, les systèmes d’exploitation employés : Where the source package typically uses the macxg++ specification, the binary package is typically configured to use the macx-xcode specification En clair – et en français –, cela signifie que si vous ne spécifiez pas -spec macx-g++, qmake générera par défaut un fichier de projet pour Xcode.
Compiler avec Xcode
Voyons maintenant comment réaliser les mêmes actions que précédemment, mais cette fois pour l’IDE Xcode. Le fichier source est identique (main.cpp décrit ci-haut) et il est stocké dans le même dossier. Déplacez-vous dans le répertoire / Developer/ QtProjects/SalutMonde à l’aide de la commande cd et saisissez les commandes suivantes : qmake -project Comme tout à l’heure, cette instruction va créer le fichier de projet Qt. Son nom par défaut – comme rien d’autre n’est précisé – sera là encore SalutMonde.pro. qmake -spec macx-xcode Un peu de changement cette fois : cela va créer le fichier de projet pour Xcode, SalutMonde.xcodeproj Il ne vous reste plus qu’à lancer Xcode et à ouvrir le fichier de projet que vous venez de créer à l’aide de qmake. Vous pouvez aussi cliquer sur le fichier en question, ce qui devrait produire le même effet puisque les fichiers d’extension xcodeproj sont liés à l’application Xcode.