Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Mais au fait, pourquoi devrait-on compiler Code::Blocks alors que l'on peut le télécharger ?
Il peut y avoir plusieurs raisons à cela (mais vous ne gagnerez aucun lot même si vous devinez lesquelles sont valables

) :
- vous ne trouvez pas de paquet pour votre distribution (c'est par exemple le cas si vous êtes sur une installation "Intel 64bits") ;
- vous voulez profiter des toutes dernières améliorations faites par les développeurs sans avoir à attendre qu'une autre personne vous fournisse un paquet pour votre distribution ;
- vous êtes du genre à préférer la complexité d'une compilation (qui peut s'avérer riche en découvertes malgré les éventuelles galères rencontrées) à la facilité d'installer un logiciel tout prêt ;
- vous avez du temps libre devant vous, alors, faire ça ou autre chose...

Bref, peu importe ce qui vous pousse à vouloir réaliser cette compilation.
Le plus important est que vous soyez là, prêts à suivre ce tutoriel pendant 4 à 5 heures non-stop.
Non, revenez, je plaisante !
La première étape lorsque l'on veut compiler un logiciel est d'en récupérer les sources.
Pour cela, nous avons deux possibilités :
- télécharger une archive contenant les fichiers à compiler ;
- récupérer la toute dernière version de ces fichiers.
Sur la
page des téléchargements de Code::Blocks, on s'aperçoit que la dernière version disponible sous forme d'archive correspond à la version 8.02 (elle date donc de février 2008). Tant qu'à faire, nous n'allons pas nous contenter d'une version âgée de quelques mois, alors que nous pouvons en obtenir une toute récente.
Nous n'allons donc pas récupérer les sources de cette manière, mais en obtenir la dernière version par
SVN.
Comme SVN (qui est en fait un diminutif de Subversion) est un logiciel bien spécifique, il n'est bien sûr pas installé par défaut sous Ubuntu.
Notre première tâche consistera donc à l'installer.
Pour ce faire, entrez la commande suivante dans un terminal :
Code : Console | sudo apt-get install subversion |
Normalement, cette commande ne devrait pas poser de problèmes : entrez votre mot de passe administrateur et confirmez l'installation lorsque l'on vous le demande (il vous sera indiqué qu'un certain nombre de paquets supplémentaires seront installés en même temps).
Nous allons maintenant récupérer les sources de Code::Blocks avec SVN, et pour cela, nous allons suivre la méthode indiquée sur la
page du site de Code::Blocks consacrée à la récupération des sources par SVN.
Nous allons donc dans un premier temps créer un répertoire de travail et nous placer dans ce dossier :
Code : Console | mkdir codeblocks
cd codeblocks |
Maintenant, lançons la commande servant à récupérer les sources :
Code : Console | svn checkout svn://svn.berlios.de/codeblocks/trunk |
La première fois que l'on exécute cette commande, tous les fichiers sources sont à récupérer.
Cela peut être un peu long, ne vous inquiétez pas.
Pour information, la version que je viens de récupérer pour faire ce tuto contient 3463 fichiers, et "pèse" 29,5 Mo.
Et pour corser un peu le tout, les 3463 fichiers sont téléchargés un par un.
Lorsque vous voudrez recompiler une nouvelle version (et c'est là toute la force de SVN), seuls les fichiers ayant été modifiés seront téléchargés, et ce sera plus rapide.
Lorsque le téléchargement est terminé, SVN nous indique quelle est la révision que l'on vient d'extraire.
Ce numéro sert à identifier la version que l'on va compiler.
Il est donc de ce fait possible de s'en servir pour compiler une version plus ancienne.
Faisons un petit test.
Lors de la rédaction de ce tutoriel, je viens de récupérer la révision 5105.
Nous allons maintenant voir comment récupérer la révision précédente.
Entrez la commande suivante (je vous laisse adapter avec vos propres numéros de révision) :
Code : Console | svn checkout --revision 5104 svn://svn.berlios.de/codeblocks/trunk |
Vous voyez comme le passage d'une révision à une autre peut être rapide (dans mon cas, seul un fichier a été modifié entre les révisions 5104 et 5105).
C'est terminé pour la récupération des sources. Il ne nous reste plus qu'à compiler tout ça.
Nous voici rendus en plein coeur du sujet principal.
Vous devez maintenant avoir un dossier contenant la dernière révision (ou tout simplement celle que vous voulez compiler

).
Mais avant de démarrer la compilation, nous devons disposer de tous les outils nécessaires à cela. Nous aurons besoin de la dernière version de "
autoconf", "
automake", ainsi que de "
libtool".
Pour ma part, non seulement je n'ai pas la dernière version de ces outils, mais ils ne sont pas installés du tout.
Pour
autoconf et
libtool, pas de soucis, une petite commande
apt-get install autoconf libtool suffit. Par contre, pour
automake, la commande
apt-get install automake installera la version 1.4, alors qu'une version plus récente est disponible (et nécessaire

) : la version 1.9.
Il faut donc spécifier la version à installer. Voici la commande à saisir :
Code : Console | sudo apt-get install autoconf automake1.9 libtool |
Comme la plupart du temps, il vous faudra confirmer l'installation de paquets supplémentaires dont dépendent ceux que nous voulons installer.
Ensuite, toujours sur le wiki de Code::Blocks, on nous dit de compiler la bibliothèque
wxWidgets.
Comme ce processus est un peu compliqué, et surtout qu'il est assez long à réaliser

, nous allons utiliser une alternative : installer cette bibliothèque directement depuis les dépôts officiels d'Ubuntu.
Pour ceux d'entre vous qui possèdent une version plus ancienne d'Ubuntu que la 8.04, wxWidgets-2.8.7 n'est pas présent dans les dépôts officiels Ubuntu. Il vous faudra utiliser le dépôt officiel wxWidgets. Je vous laisse donc choisir la bonne méthode en fonction de votre distribution
Pour Ubuntu 8.04
Pour l'installation depuis le dépôt Ubuntu, il faut activer les dépôts
Universe : lancez l'utilitaire de configuration des sources de logiciels (menu "Système", "Administration", "Sources de logiciels").
La fenêtre de l'utilitaire de gestion des sources de logiciels d'Ubuntu
Cochez la deuxième ligne si ce n'est pas déjà fait. Dans ce cas, lorsque vous cliquerez sur le bouton "Fermer", une petite boîte de dialogue va apparaître, vous indiquant que la liste des logiciels disponibles est obsolète, et qu'il faut recharger ces informations.
Comme cette boîte de dialogue possède un bouton "Actualiser", il ne vous reste plus qu'à cliquer dessus, et le tour est joué.
Pour les versions précédentes d'Ubuntu :
Pour l'installation depuis le dépôt wxWidgets, c'est à peine plus compliqué. Il faut dans un premier temps ajouter l'adresse du dépôt. Comme ci-dessus, ouvrez le gestionnaire des sources de logiciels, passez à l'onglet "Logiciels de tierces parties" et cliquez sur le bouton "Ajouter". Vous obtenez une jolie boite de dialogue vous permettant d'entrer l'adresse complète du dépôt.
Cette adresse est à adapter à votre distribution : elle est de la forme :
Code : Autre1
| deb http://apt.wxwidgets.org/ distrib-wx main |
Vous aurez compris qu'il faut remplacer
distrib par le nom de code de votre distribution :
gutsy, feisty, edgy, ... en prenant soin de bien laisser la partie "
-wx" pour que ça marche. Voici, par exemple, ce que ça donne pour Ubuntu 7.10 :
L'ajout du dépôt wxWidgets pour Ubuntu 7.10 Gutsy Gibbon
Cliquez ensuite sur le bouton "Ajouter une source de mise à jour" pour valider, et sur le bouton "Fermer". L'utilitaire vous propose de mettre à jour la liste des paquets qui est devenue obsolète suite à l'ajout de ce nouveau dépôt.
Ne le faites pas ! (enfin, si vous l'avez fait, ce n'est pas grave, mais ça ne sert à rien).
En effet, il faut encore que l'on installe la clef de vérification de ce nouveau dépôt.
Revenez à votre fenêtre "Terminal", et entrez la commande :
Code : Console | wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add - |
Ubuntu va télécharger le fichier contenant la clef à installer, puis attendre que vous saisissiez votre mot de passe administrateur, et enfin installer cette clef. Vous devriez au final obtenir le message "Ok" vous indiquant que tout s'est bien passé.
Maintenant que cette clef est installée, nous allons pouvoir demander la mise à jour de la liste des paquets disponibles :
Code : Console
Installer la bibliothèque wxWidgets :
Il nous faut la version développement de cette bibliothèque, et il nous faut également un paquet nommé
wx-common qui contient des utilitaires permettant de faciliter la compilation d'un programme utilisant la bibliothèque wxWidgets.
De plus, ce que le wiki ne nous dit pas, c'est qu'il nous faut installer le paquet
build-essential (qui, comme son nom l'indique, contient l'essentiel pour la compilation

), et
libgtk2.0-dev (qui contient la version développement de la bibliothèque GTK2.0, servant à la création d'interfaces graphiques, et dont dépend wxWidgets).
C'est tout, oui ? On ne va quand même pas rapatrier tous les paquets d'Ubuntu sur notre disque dur ?
Pas de panique : oui, c'est tout (pour l'instant

).
Nous allons donc installer tous les paquets dont je viens de vous parler avec une seule commande (ouahhhh, t'es trop fort !!!!

).
N'oubliez pas que même sous Linux, le copier-coller est votre ami (tant que vous n'en abusez pas

).
Code : Console | sudo apt-get install build-essential libgtk2.0-dev libwxgtk2.8-dev wx-common |
Compiler Code::Blocks :
Voilà, nous avons normalement installé tout ce qu'il nous faut pour compiler Code::Blocks. Il ne nous reste plus qu'à le faire.
Chaque fois que vous voudrez refaire la compilation (par exemple, après une mise à jour des sources), il faudra reprendre le tutoriel à cet endroit. Il ne sera pas nécessaire de refaire les installations citées précédemment.
Si vous listez le contenu de votre répertoire codeblocks (commande
ls), vous vous apercevrez qu'un dossier
trunk a été créé.
Nous allons tout d'abord nous placer dans ce répertoire
trunk.
Code : Console
La première chose à faire avant de lancer la compilation est d'appeler les outils que nous avons installés au début de cette partie, à savoir
autoconf et
automake.
Nous n'allons cependant pas le faire directement, car le répertoire des sources contient un petit script permettant de le faire (avec les bons paramètres

).
Il suffit d'entrer la commande suivante :
Code : Console
Ce script va faire une première configuration du dossier contenant les sources, en analysant tous les sous-dossiers afin de savoir quelles sont les options disponibles pour la compilation.
Ne tenez pas compte du message qui pourrait s'afficher, vous disant d'ajouter le contenu d'un fichier à celui d'un autre fichier, comme ci dessous :
You should add the contents of '/usr/share/aclocal/libtool.m4' to 'aclocal.m4'
Le résultat le plus visible de
bootstrap est la création d'un deuxième script :
configure.
Celui-ci, vous en avez peut-être déjà entendu parler, car il est fréquent de l'utiliser lorsque l'on fait une compilation sous Linux.
Il sert tout d'abord à vérifier que notre système contient tout ce qu'il faut pour compiler, et également à activer ou désactiver certaines options lors de cette compilation.
Nous n'allons pas toucher aux options par défaut. Il nous suffit donc de l'exécuter sans paramètre :
Code : Console
Normalement, après une bonne série de tests, la création de quelques sous-dossiers, et la mise en place des
Makefile, vous devriez obtenir un joli petit message (en anglais

) vous confirmant le fait que Code::Blocks est maintenant prêt à être compilé avec la commande
make.
Code : Console
C'est parti mon kiki !
Vous pouvez aller manger, boire, prendre une douche, ou faire une petite sieste, car il y en a pour un bon petit moment (comptez une bonne quinzaine de minutes).
Je sais, ça ne sera qu'une petite sieste, mais il ne faut pas abuser non plus, on est là pour bosser quand même, non ?
Pour les personnes possédant un microprocesseur "multi-coeurs", il est possible de lancer plusieurs processus en même temps, gràce à la commande : make -j2 (pour 2 processus, par exemple). Cette commande est à saisir à la place de celle indiquée précédemment : il ne faut surtout pas ouvrir une deuxième fenêtre "Terminal" pour la lancer !
Lorsque la compilation est terminée, il ne nous reste plus qu'à installer notre tout nouveau logiciel en entrant la commande :
Code : Console
Quand tout est fini, vous devriez pouvoir démarrer Code::Blocks en passant par le menu
Applications,
Programmation (ou Développement, suivant les versions d'Ubuntu).
Encore une petite chose : la compilation de Code::Blocks a généré de nombreux fichiers intermédiaires qu'il est inutile de conserver et qui tiennent beaucoup de place.
Je vous conseille donc de les supprimer avec la commande suivante (toujours en étant dans le répertoire
trunk) :
Code : Console
Le paramètre clean sert à supprimer les fichiers temporaires créés lors de la compilation, et le paramètre distclean permet de supprimer les fichiers créés par la commande configure.
Les soucis d'éxécution de Code::Blocks
Il se peut que Code::Blocks ne démarre pas.
Dans ce cas, passez par la fenêtre terminal, et entrez la commande :
Code : Console
Vous devriez obtenir un message du style :
error while loading shared libraries : libcodeblocks.so.0: cannot open shared object file: No such file or directory
Il s'agit en fait d'une configuration qui s'est mal effectuée lors de l'installation des paquets.
Pour résoudre ce problème, il suffit d'entrer, dans la fenêtre terminal, la commande :
Code : Console
Normalement, après cela, tout devrait rentrer dans l'ordre.
Il se peut, sous Ubuntu 8.04, que vous rencontriez des problèmes lors de la saisie de code dans l'éditeur de Code::Blocks : la touche
[Espace] ne semble plus marcher. Il s'agit en fait d'un problème de configuration du serveur graphique.
Il faut éditer le fichier de configuration du serveur xorg :
Code : Console | sudo gedit /etc/X11/xorg.conf |
Recherchez la ligne
Option "XkbVariant" "oss" et commentez-la en insérant un caractère "
#" au début :
Code : Autre1
| #Option "XkbVariant" "oss" |
Il faut ensuite redémarrer le serveur xorg en pressant les touches [Alt] + [Ctrl] + [Del] (pensez à fermer les éventuelles applications ouvertes).