

La Programmation : GCC et Xcode
La Programmation : GCC et Xcode
Bonjour à tous, bienvenu dans cette nouvelle série de tutoriels, cette fois-ci consacrés à la programmation sur Macintosh ! Parce que ça manque un peu . Et oui, pour le Terminal, pour l'instant, c'est fini, mais vous pouvez toujours venir me poser des questions soit par e-mail soit par le forum soit par commentaires, je serai ravi d'y répondre !
Alors pour ce tutoriel vous avez besoin de certaines bases. Et oui, le truc c'est que, concernant la programmation, il y a énormément de documentations dans diverses langages, notamment C, C++, Java... Ce qu'il n'y a pas en revanche, ce sont des tutoriels de programmation sur Mac. Et oui ! Nous sommes les mal-aimés du monde de la programmation... Et pourtant notre plate forme a tant d'atout technique et technologique ! C'est pour palier à ce manque que je me propose de faire un tutoriel de programmation, en m'attaquant, pour commencer, aux outils spécifiquement Mac (Unix/Mac pour GCC) et ensuite au langage de programmation, pour lequel on manque aussi de documentation, j'ai nommé Objective-C, langage majeur de l'API Cocoa ! Utilisé par nos chers ordinateurs souriants !

Je vous ai parlé de bases... Ces bases sont une relative connaissance du C... Bah oui ! Pour programmer il faut au moins connaître un langage, hors je pense que celui-ci est le meilleur pour débuter surtout si vous mettez à programmer en Objective-C après... Ce langage est un sur-ensemble du C donc vous en avez impérativement besoin ! Alors, je vous conseille de lire ce tutoriel de programmation en C/C++ sur le site du Zero qui est un excellent guide de programmation en C... Seul inconvénient, il est pour PC. Bien qu'on y parle d'Xcode on ne s'y étend que pour PC. Ce chapitre zéro de programmation est justement là pour faire en sorte de faire tomber cette barrière !
À l'instar du Site du Zéro qui vous parle des outils PC pour programmer je vais vous parler de l'outil phare (il n'est pas le seul heureusement) pour programmer sur Mac... J'ai nommé Xcode, mais aussi de ce vieux mais toujours puissant programme de compilation (sur lequel se base Xcode) et bien connu du monde Unix, j'ai nommé GCC.
Retour temporaire au Terminal : GCC
Pour ceux qui ont suivi mes précédents tutoriels et, bien sûr, qui connaissent déjà le Terminal, cela ne devrait pas trop vous posez de problème. Si vous n'avez jamais manipuler le terminal, qu'il vous fait peur, mais que vous voulez quand même essayer le GCC pur et dur sans ajout, pointez-vous en bas de cette page : Tutoriaux (En bas de page, section "Le Terminal").
Voilà nous pouvons commencer.
GCC est un compilateur ! M@teo21 vous en parle, un compilateur est un programme qui convertit votre code source (lisible par vous) en langage binaire lisible et exécutable par votre processeur. Ce compilateur permet de compiler dans de nombreux langages, la liste est assez longue, il vous suffit de regarder le manuel de GCC pour vous en rendre compte. Donc je ne m'étendrai pas trop, je vais seulement vous parler de l'essentiel : la compilation de programme en C, C++ et Objective-C.
Ce programme n'est pas intégré à Mac OS X, il faut l'installer. Bon, ne vous dirigez pas tout de suite sur google ! Apple le donne avec son IDE Xcode, il suffit d'installer les Developer Tools livrés avec Mac OS X. Il est aussi possible de télécharger l'ensemble sur le site d'Apple (Nota : l'inscription à l'ADC nécessaire mais gratuite ).
Bon, maintenant nous pouvons nous atteler à l'utilisation pure et simple de GCC, et pour cela, vous avez besoin du... Terminal ! EN effet, GCC s'exécute à l'aide d'une commande dont voici deux de ses syntaxes :
- Compilation longue :
- gcc -c fichier_source [...]
- gcc fichier_compile [...] [-o nom_programme]
- Compilation courte :
- gcc fichier_source [...] [-o nom_programme]
Vous remarquez déjà qu'il y a deux possibilités. Les deux possibilités ont leurs avantages et inconvénient. Commençons par la méthode longue. Pour la création d'un programme, lorsque celui-ci repose sur plusieurs fichiers sources, deux étapes au moins sont nécessaires, d'abord la compilation, que l'on exécute à l'aide de la commande "gcc -c fichier_source [...]", qui permet de créer des fichiers objets à partir des fichiers sources. Et puis, l'édition des liens qui permet de lier les multiples fichiers objets en un seul fichier binaire utilisable par le processeur, l'édition des liens se fait grâce à cette commande : "gcc fichier_compile [...] [-o nom_programme]".
La version courte, "gcc fichier_source [...] [-o nom_programme]", fait la même chose que les deux autres, mais elle, en une fois... Alors vous allez me dire, quel intérêt de vous apprendre les deux versions si l'une est plus facile que l'autre ? Et bien, tout simplement parce que si votre programme a plusieurs fichiers sources et qu'à chaque modification de l'un d'eux, sous prétexte de corriger un bogue, vous recompiler la totalité du programme, ça risque de prendre beaucoup de temps ! Donc, il vaut mieux recompiler sous forme de fichier objet le fichier source modifié, et ensuite de refaire l'édition de lien, plutôt que de tout recompiler.
Alors, ces deux commandes commandes sont valables pour la compilation en C uniquement... Si vous souhaitez compiler du C++, il suffit de remplacer "gcc" par "g++", sinon le reste c'est pareil. Malheureusement, je ne connais pas exactement la commande pour compiler de l'Objective-C, les options sont innombrables.
Mais après la compilation, il faut faire l'exécution. Si vous voulez tester votre programme il vous suffit de taper "./" suivit, sans espace, du nom de sorti (ce qui suit le "-o" dans la commande gcc) et taper sur "entrer" pour lancer votre programme.
Enfin, toujours est-il que l'utilisation de GCC directement n'est pas à mon avis le plus pratique. Il est bien plus pratique d'utiliser Xcode... C'est d'ailleurs le sujet principale de ce tutoriel. Je vais donc à présent vous exposer en texte et en image, le fonctionnement, pas complet parce que je n'ai pas tout explorer encore, d'Xcode.

Le Fameux IDE d'Apple : Xcode !
Bienvenu dans Xcode ! Ah, il est tout chaud il vient à peine d'être installé sur votre ourdi ! Vous l'ouvrez et ¡¡¡ BOOM !!!
Rien !
Oui, pour ceux qui sont habitués aux applications d'Apple, Xcode surprend un peu déjà sur le fait qu'il n'y ait pas de fenêtre d'ouverture, qu'il ne se passe rien au démarrage... Si vous n'avez pas l'idée de regarder la barre de menu, vous ne remarquerez rien de nouveau. Enfin, bon passons. Cet outil prend beaucoup de place, lui et ses comparses, en plus il est complètement en anglais. Il faut dire qu'avec le dossier Developer vous pouvez TOUT faire sur votre bécane... absolument TOUT ! Ce sont des outils de professionnels et utilisés par des professionnels, notamment les développeurs Apple. Mais bon, je ne suis pas plus capable que vous, lecteurs, de faire un iPhoto ou un Keynote avec ce formidable outil . En tout cas, je connais une partie de son fonctionnement, et je vais donc vous faire partager mon expérience.
N'oublions pas que c'est gros outil, je risque de ne pas pouvoir tout exposer ici et devoir remettre ça dans un des tutoriels d'Objective-C pour voir la correspondance entre le logiciel et le langage.
Créer un nouveau projet !
Commençons simplement par ça... C'est très simple, ça se fait en deux étapes : Choix du type, Choix de l'emplacement
Alors faites : Files --> New Project? (ou Pomme + Shift + N). Vous devriez tomber sur un truc comme ça :
Bon oui ça fait beaucoup de possibilités ! Disons que pour suivre le tutoriel du site du Zéro, vous pouvez choisir "Standard Tool" dans la partie "Command Line Utility". Vous cliquez sur Next, choisissez un nom pour votre projet et choisissez un emplacement... Par défaut, il sera créé dans votre dossier de départ, mais rien n'empêche d'aller autre part.
Alors, sur le Finder, le projet se présente sous forme d'un dossier portant le nom de votre application. À l'intérieur vous avez vos fichiers sources, quelques fichiers de construction ainsi que le fichier du projet qui porte le nom de celui-ci, d'extension ".xcodeproj", il contient tous les paramètres et autres références de votre projet.
Et voilà le résultat, si vous sélectionnez "main.c" :

Dans cette fenêtre condensée, on peut voir 4 parties...
La première étant la barre de boutons, entièrement configurable (il est possible que vous n'ayez pas la même).
Ces 3 boutons : vous permettent de circuler en les pages :
- Project, là où vous manipuler vos fichiers, les modifier etc.
- Build, là où vous voyez le résultat de la "construction" de votre application, notamment l'affichage des erreurs et avertissements.
- Debug, là où l'on peut voir le déroulement instruction par instruction afin de corriger les bogues.
Ces deux boutons : vous permettent de :
- Construire le projet, et donc à fortiori de vérifier les erreurs,
- Construire le projet ET lancer l'application.
Dans le cas d'une reconstruction du programme, Xcode ne reconstruit pas la totalité du programme mais seulement les fichiers que vous avez modifier pour éviter de prendre trop de temps.
La deuxième partie est l'arborescence de votre projet, en fait c'est comme les listes de lectures d'iTunes, vous avez la liste regroupant erreurs et avertissements, celui réunissant les sources, les cibles, etc. Les plus important sont dans le premier dossier qui porte le nom du projet. C'est d'ailleurs sur celui-ci que Xcode vous place en premier.
La troisième partie c'est l'affichage du contenu du fichier sélectionné dans la partie deux. En l'occurrence, le dossier sélectionné est celui du projet lui-même. Il contient le fichier source "main.c" qui contient la fonction d'entrer de programme "main()", un fichier "nom_du_projet.1", ce fichier à l'obscure contenu n'est autre que votre programme en langage assembleur . Vous le regardez une fois... Et après vous l'oubliez
. Le dernier, écrit en rouge, c'est l'exécutable, c'est-à-dire votre programme final. Lorsque le nom est en rouge cela signifie qu'Xcode le référence mais qu'aucun fichier n'existe derrière, en fait... Le fichier compiler n'a pas encore était créé.
La quatrième partie représente l'éditeur de sources, lorsque vous cliquez sur un fichier source il vous affichera cette partie où vous pourrez taper votre code. En l'occurrence on voit "main.c", et à l'intérieur Xcode a généré du code... En fait, il écrit la même chose pour toutes les applications en ligne de commande comme celle-ci... Il s'agit en fait du programme "Hello, World!" bien connu des développeurs Unix . Il affiche tout simplement "Hello, World!" à l'écran.
Si vous voulez en avoir la preuve, cliquez sur "Build and Go" .
Voici le résultat :


Voici la légende :
- Les petits boutons vous permettant de changer de page
- La cible, c'est-à-dire le fichier réunissant les sources compilés et liés de votre programme.
- L'exécutable, le nom de votre application. Oui car vous pouvez en avoir plusieurs.
- La configuration / le mode de compilation :
- "Debug" c'est-à-dire que l'exécutable reste dans Xcode et n'est là que pour être débogué, modifié, amélioré.
- "Release" c'est-à-dire qu'Xcode génère l'application définitive, celle que vous pouvez partager en toute sécurité.
- Ces deux boutons vous permettent soit de démarrer l'application directement (Run), soit de la démarrer en mode Debug, le mode Debug permet de refaire le déroulement complet de votre programme instruction par instruction pour voir où se trouve le problème. C'est pas l'outil le plus simple de Xcode !
- L'arborescence des fichiers qui sont impliqués dans la construction du programme.
- Voici encore un éditeur de sources. C'est si vous n'avez pas envie de retourner dans la partie construction et que vous voulez modifier quelques instructions.
- La console d'Xcode, ici s'affichera le déroulement de votre programme du côté de la console : vous pourrez y voir des informations comme par exemple des erreurs qui apparaissent lors de l'exécution, ou alors les textes que vous y afficher en C par exemple.
- Ces deux boutons permettent de changer de page et vous mènent soit à la partie (
soit à la partie (10)
- Voici la partie d'exécution du compilateur, ici s'affiche les étapes de compilation et de liaisons que fait Xcode lorsque vous cliquez sur "build", ici s'afficheront également les erreurs lors de la compilation, là il n'y a aucun problème.
Nouveau Fichier
Lorsque vous écrirez vos programmes, à mon avis vous aurez besoin de créer de nouveaux fichiers à ajouter directement au projet. Cela se fait à l'aide d'un assistant similaire à celui des nouveaux projets. Deux pages... Choix du type de fichier... ALors pour le cas du C, vous trouverez ce type dans la partie "BSD" puis Fichier C.

Alors, comme pour le projet, vous devez choisir un nom pour le fichier, l'extension doit être conservée intact. Généralement, les fichiers en ".c" nécessite un autre fichier, appelé fichier d'en-tête en ".h", Xcode propose de vous le créer en même temps. Alors étant donné que plusieurs fichiers peuvent fonctionner en même temps et que dans un projet il peut y avoir plusieurs cibles, Xcode vous propose les deux options qui suivent, mais bon pour l'instant c'est pas très très utile. Une fois que vous avez cliqué sur "Finish", votre ou vos fichiers s'ajoutent à votre projet, je conseille fortement d'immédiatement les changer d'endroit dans l'arborescence de votre projet pour éviter d'acumuler des fichiers n'importe où .
Alors, sur le site du Zéro, M@teo21 explique le fonctionnement d'IDE PC, ce n'est pas parce que sur PC que le fonctionnement est totalement différent, au contraire, les IDE ont tous un fonctionnement à peu prêt similaire. Donc je pense qu'avec mon tutoriel et celui de M@teo21 vous êtes bon pour programmer sur Mac !
Avant que je referme ce tutoriel, je vais vous indiquer un outil très pratique qui est l'aide Xcode, dans cette aide vous avez l'aide Apple sur ses différents outils, et l'aide API, qui vous donne les spécifications des fonctions, méthodes, constantes, enfin tout ce qui concerne la programmation dans 4 langages : C, C++, Objective-C et Java. Je me sers de ça sans arrêt quand je programme, c'est très très pratique, n'hésitez pas à y jeter un ?il. On y accède par le menu Help --> Xcode Help / Documentation (Raccourcis : pomme + ? ou pomme + alt + ?).
Alors je m'excuse si je suis allé trop vite sur cette IDE, mais son fonctionnement est assez vaste, je vous conseille de passer par les Préférences et essayer des configurations différentes de façon à rendre la programmation plus agréable.
Quant à moi, je vous dit à la prochaine fois dans le tutoriel de programmation en Objective-C. Toutefois si vous avez des questions sur le fonctionement d'Xcode vous pouvez me les poser soit sur le Forum, soit par e-mail, soit par iChat si je suis présent, je serai ravi d'y répondre.
Psycho
E-mail : PsychoH13@logicielmac.com
PS : Excusez-moi pour les fautes éventuelles. :[
ok,