Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.
This page is available in English.

Installation de Cogitant à partir des sources

Introduction

Cette section détaille la marche à suivre pour compiler et installer la bibliothèque Cogitant à partir des sources. Différents modes opératoires doivent être suivis selon le système d'exploitation et le compilateur. Le tableau ci-dessous récapitule les différentes architectures et compilateurs avec lesquels la bibliothèque a été testée.

SystèmeVersionCompilateur

Version testée

GNU/Linux Debian Testing x86_64GNU C++ 5.2.1 5.3.1
- - Intel C++ Composer XE 2013 SP1 (14.0.2) 5.3.0
- - LLVM Clang 3.5.2 5.3.1
MS Windows 10 Microsoft Visual C++ 2015 Community (19.0.23026.1)5.3.1
- 8 Microsoft Visual C++ 2013 Express (12.0.30501.00)5.3.1
- 7 Microsoft Visual C++ 2010 Express (10.0.30139.1)5.3.0
- - Cygwin GNU C++ 4.8.2 5.3.0
Mac OS 10.10.5 Apple LLVM 7.0.0 (Xcode 7.0)5.3.1
- - GNU C++ 5.2.0 (Macports)5.3.1
- - GNU C++ 4.9.3 (Macports)5.3.1
- - LLVM Clang 3.7.0 (Macports)5.3.0
OpenSolaris2009.06 GNU C++ 4.3.2 5.2.6
- - Sun Studio Express 12 (2009.03)5.2.3
Solaris 5.10 (sun4u) GNU C++ 3.4.5 5.2.4
FreeBSD 8.2 (i386) GNU C++ 4.2.1 5.2.91

Remarque : Ces informations ne concernent que les classes de base de Cogitant (espace de nom cogitant), mais pas les classes de l'architecture client / serveur, ni les classes de dessin et d'interfacage avec Java.

Les instructions de compilation décrites ci-dessous concernent les classes de base de la bibliotèque. Si vous désirez utiliser des extensions (architecture client/serveur, dessin et édition de graphes, interfacage CommonC++, wxWidgets ou Java), la compilation s'effectue à peu près de la même façon, mais des options particulières doivent être fournies au mécanisme de compilation. Pour connaitre en détail ces options, vous pouvez vous reporter à la section Dessin de graphes - compilation et à la section Architecture client-serveur - compilation.

Deux méthodes sont disponibles pour la compilation de Cogitant. Selon le système d'exploitation utilisé, il faut utiliser une méthode ou l'autre. La première méthode consiste à utiliser un script configure, démarche bien connue des utilisateurs de systèmes de type Unix (désormais appelés juste Unix). Cette méthode a l'avantage d'être simple, mais l'inconvénient d'être disponible uniquement sous Unix, car requiert la présence d'un interpréteur de scripts shell (sh). L'autre méthode consiste à utiliser Cmake (http://www.cmake.org) dont le principal avantage est d'être disponible à la fois sous Unix et sous MS Windows, mais cette méthode demande d'installer Cmake avant de lancer la compilation de Cogitant.

Installation sous Unix (et GNU/Linux, MacOS X)

Cogitant utilise le mécanisme classique pour la compilation sous Unix (./configure, make, make install). Si vous êtes familiers de ce mécanisme, il est inutile de lire cette section. Notez que Cmake peut aussi être utilisé sous Unix, se reporter à la section Installation avec Cmake pour plus d'informations. Assurez-vous d'avoir un compilateur C++ installé avant d'aller plus loin. Sous MacOS, installez Xcode (https://developer.apple.com/xcode/).

En premier lieu, il faut décompresser l'archive contenant les sources. Pour cela, procéder de la façon suivante :

tar zxvf cogitant-5.x.x.tar.gz

Ceci a pour effet de créer un répertoire cogitant-5.x.x contenant les sources de la bibliothèque, mais aussi les fichiers entête, les documentations et les programmes d'exemple. Il faut maintenant compiler les sources pour construire le fichier bibliothèque, qui pourra être lié plus tard à vos applications. Avant cela, il est nécessaire de configurer la compilation de cette façon :

cd cogitant-5.x.x
./configure

L'appel à configure (qui est un fichier script situé dans le répertoire cogitant) crée un certain nombre de fichiers permettant la construction de la bibliothèque. Il est possible de passer un certain nombre de paramètres à ce script pour configurer la compilation. La plupart de ces paramètres permettent de régler des détails de la compilation et il est souvent inutile d'y toucher à moins de savoir ce que l'on fait. Par contre, un paramètre est souvent utilisé, il s'agit de –prefix, qui permet de préciser dans quel répertoire le résultat de la compilation devra être installé. Par défaut, il s'agit du répertoire /usr/local (les fichiers entêtes sont donc installées dans /usr/local/include, la bibliothèque dans /usr/local/lib, etc.), mais si vous ne possédez pas les droits (root) sur ce répertoire, il est nécessaire d'indiquer un autre répertoire (./configure –prefix=/home/users/moi/usr par exemple). Dans ce cas, vous devrez fixer la valeur des variables d'environnement PATH et LD_LIBRARY_PATH pour pouvoir utiliser simplement la bibliothèque. Le but de cette documentation n'étant pas de décrire l'utilisation d'Unix, nous ne décrirons pas les manipulations devant être effectuées pour obtenir ce résultat et considérerons par la suite que les fichiers de la plate-forme sont correctement installés dans des répertoires accessibles dans les différents répertoires de recherche (c'est le cas par défaut si vous n'utilisez pas le paramètre –prefix). Se reporter au "gourou Unix" à votre disposition si vous ne vous sentez pas capable de réaliser ces opérations : Cogitant s'utilise comme n'importe quelle autre bibliothèque, et tout gourou Unix digne de ce nom connait la marche à suivre pour créer une arborescence usr spécifique à un utilisateur.

Une fois la configuration effectuée, il est possible de lancer la compilation de la bibliothèque de la façon suivante :

make

La compilation prend un certain temps, variable évidemment suivant les capacités de votre machine. Si la compilation s'est effectuée sans encombre, vous pouvez maintenant installer la bibliothèque dans les répertoires choisis au moment de l'appel à configure, pour cela, il suffit de taper :

make install

Et c'est fini, vous pouvez maintenant compiler vos propres programmes qui utilisent la bibliothèque, et pour cela, référez vous à la section Compilation de programmes utilisant Cogitant.

Installation sous SunOS / Solaris

Il est nécessaire d'utiliser les outils GNU plutôt que les outils Sun. Les noms des outils GNU sont habituellement préfixés par g sous SunOS. Ainsi, pour décompresser l'archive, utiliser le GNU tar plutôt que le tar de Sun (gtar zxvf cogitant-5.x.x.tar.gz). De même, pour compiler les sources de la bibliothèque utiliser le GNU make (gmake suivi de gmake install). Selon l'installation, il peut être nécessaire de préciser la commande make à utiliser pour l'appel des Makefiles des niveaux intérieurs, pour cela, tapez gmake MAKE=gmake. Si la compilation se termine immédiatement par une erreur, il est peut être nécessaire de régénérer certains fichiers. Pour cela tapez automake, autoconf, ./configure, make.

Installation avec d'autres compilateurs sous Unix (Intel C++, autre version de GNU C++, LLVM Clang)

Le script configure détecte le compilateur par défaut et la compilation s'effectue avec ce compilateur, habituellement la version 4.x du GNU C++. Il est toutefois possible de forcer le script configure à utiliser un autre compilateur. Pour cela, il suffit de définir les variables d'environnement CC et CXX avant de lancer le script. Ces deux variables doivent avoir pour valeur respectivement le nom du compilateur C utilisé, et le nom du compilateur C++. Ces noms doivent être éventuellement préfixés par le chemin si les exécutables ne figurent pas dans le PATH.

A noter que si vous avez déjà lancé le script configure, il est préférable de supprimer le fichier config.cache avant de re-lancer le script configure avec les nouvelles valeurs pour CC et CXX.

Configuration avancée

Le script configure peut recevoir des arguments qui permettent de configurer la façon dont Cogitant est compilée. ./configure –help donne la liste des arguments, certains étant communs à tous les scripts de configuration générés par le couple infernal autoconf/automake, d'autres étant spécifiques à Cogitant. Parmi les arguments spécifiques, nous n'en citerons que quelques uns.

Installation avec Cmake

Cmake est la deuxième méthode de compilation de Cogitant, mais contrairement à l'utilisation du configure, cette méthode requiert l'installation d'une application supplémentaire : Cmake. Cependant, cette application est disponible sous forme de paquets dans tous les systèmes Unix modernes. Pour vérifier que Cmake est correctement installé, taper simplement cmake –version dans un shell. La version 2.6.3 (au minimum) de Cmake est requise.

Nous décrivons ici la compilation de Cogitant avec Cmake dans un sous-répertoire du répertoire cogitant-5.x.x appelé cmake. Ce nom n'est évidemment qu'un exemple.

tar zxvf cogitant-5.x.x.tar.gz
cd cogitant-5.x.x
mkdir cmake
cd cmake
ccmake ..

ccmake est une interface simplifiée permettant de configurer la compilation. Une fois ccmake chargé, taper c pour faire apparaître les options de configuration. L'écran qui apparaît alors permet de sélectionner les modules de Cogitant qui seront construits (Interfacage Java par exemple) et la configuration de la compilation (CMAKE_BUILD_TYPE peut prendre la valeur Release pour une compilation optimisée et Debug pour une compilation avec informations de débogage). Appuyer sur c (après avoir éventuellement modifié certaines valeurs) pour lancer la configuration, puis sur g pour générer les makefiles. En effet, la commande ccmake génère les makefiles correspondant à la configuration choisi, il ne reste donc plus qu'à compiler Cogitant par un simple :

make

Notez que Cmake peut aussi prendre en compte d'autres compilateurs tels qu'Intel C++, pour cela, on définira les variables d'environnement de la façon donnée plus haut avant d'appeler ccmake. Notons enfin que la commande cmake peut être utilisée à la place de ccmake et permet de passer les arguments de compilation en ligne de commande plutôt que dans une interface, ce qui peut être utile pour automatiser la construction de Cogitant. Se reporter à la documentation de cmake (http://www.cmake.org/HTML/RunningCMake.html) pour plus d'informations.

Installation sous MS Windows, avec Microsoft Visual C++ Express

Ce compilateur est le compilateur conseillé sous MS Windows car il s'agit, contrairement aux versions précédentes, d'un compilateur respectant à peu près la norme. Toutefois, les solutions basées sur des outils libres ne doivent pas être oubliées avec Cygwin et Mingw qui sont décrits plus bas. La démarche décrite ici est valable pour la version Express du compilateur, qui a l'avantage d'être gratuite, mais la démarche peut être adaptée facilement avec les versions payantes du compilateur.

Installation de VC++ Express et Cmake

Le compilateur est disponible gratuitement sur le site de Microsoft à l'adresse suivante : http://www.microsoft.com/france/visual-studio/essayez/express.aspx (Visual Studio Express pour Windows Desktop)
Aller sur le site de Cmake http://www.cmake.org , télécharger la version MS Windows et l'installer.

Configuration

Avant de compiler les sources, il est nécessaire de les extraire de l'archive, il est pour cela nécessaire d'utiliser un outil capable de traiter les fichiers tar.gz comme 7zip (outil libre disponible à http://www.7-zip.org/), ou Total Commander (http://www.ghisler.com).

Charger Cmake à partir du menu Démarrer et lui indiquer le répertoire contenant les sources de Cogitant dans le champ Where is the source code (par exemple D:\cogitant-5.x.x). Dans le deuxième champ Where to build the binaries, on indiquera, soit le même répertoire, soit un autre répertoire qui contiendra le résultat de la compilation (par exemple D:\cogitant-5.x.x\cmake). Cliquer sur Configure, et demander la création de fichiers pour Visual Studio 10 (2010), Visual Studio 11 (2012), Visual Studio 12 (2013), Visual Studio 14 (2015). Modifier éventuellement la valeur de certains paramètres, puis sur cliquer sur Configure. Cliquer alors sur Generate (ou Ok selon les versions de Cmake). Cmake se charge de créer des fichiers projets pour VC++.

Avec les répertoires cités ci-dessus, Cmake a créé un fichier cogitant.sln dans le répertoire D:\cogitant-5.x.x\cmake. Exécutez ce fichier, ce qui a pour effet d'ouvrir VC++ sur ce projet, et lancez la compilation par un appui sur F7 (après avoir éventuellement choisi le mode de compilation Debug ou Release). Attention, si vous voulez redistribuer une application compilée avec VC++, vous devez obligatoirement la compiler en mode Release car les DLL runtime de VC++ en mode débug ne sont pas redistribuables.

Installation sous MS Windows, avec Cygwin

La suite Cygwin (http://www.cygwin.com) est un ensemble d'outils permettant de compiler facilement des sources prévus pour Unix. Le compilateur inclus dans cette suite est le GNU C++ 4.8. La compilation avec Cygwin se fait alors exactement de la même façon que sous Unix. Après avoir démarré Cygwin (bash –login), exécuter les commandes suivantes :

./configure
make
make install

Installation sous MS Windows, avec Mingw

L'ensemble d'outils Mingw (http://www.mingw.org) est une version pour MS Windows du compilateur de GNU et des outils associés. Contrairement à Cygwin qui fournit une couche d'émulation d'Unix (à la fois les appels systèmes et les utilitaires en ligne de commande), Mingw ne contient que le compilateur et les outils nécessaires à la construction de programmes MS Windows pouvant utiliser l'API Win32, mais ne pouvant utiliser d'appels systèmes spécifiques à Unix. Le principal bénéfice de l'utilisation de Mingw par rapport à Cygwin réside en l'absence de "l'artillerie lourde" mise en place par Cygwin pour faire croire aux applications qu'elles s'exécutent sous Unix : ainsi, tout logiciel compilé avec Cygwin est dynamiquement lié à la bibliothèque cygwin1.dll qui doit être obligatoirement fournie avec vos applications (l'autre contrainte est qu'une application compilée avec Cygwin doit être GPL mais c'est aussi le cas d'une application utilisant Cogitant). Au contraire, Mingw produit un exécutable MS Windows "pur", ne nécessitant pas cette dll. Il est toutefois à noter que la compilation de sources C++ avec Mingw produit un exécutable nécessitant la bibliothèque libstd++.dll (fournie avec Mingw, mais qui doit être distribuée avec vos applications dans le cas d'une installation sur un poste sur lequel Mingw n'est pas installé). Cogitant peut être compilé à l'aide du script configure (comme sous Unix) ou avec CMake (methode conseillée).

Compiler avec CMake

Voir Configuration pour des instructions générales à propos de l'utilisation de CMake avec Cogitant. Pour Mingw, il faut évidemment choisir le générateur de "MinGW Makefiles" dans CMake. Une fois que les makefiles sont générés, ouvrir une invite de commandes. Se positionner dans le répertoire dans lequel les makefiles ont été générés et lancer l'exécution de la commande make de Mingw. En supposant que Mingw a été installé dans C:\mingw, Cogitant a été installé dans D:\cogitant-5.x.x, et les makefiles générés par CMake dans le sous répertoire cmake de D:\cogitant-5.x.x, les commandes suivantes doivent être exécutées :

D:
cd cogitant-5.x.x
cd cmake
C:\mingw\bin\mingw32-make

Compiler avec le script configure (méthode dépréciée)

Aucun outil n'est fourni avec Mingw pour construire une application, alors qu'il est nécessaire de disposer d'une application shell et d'autres outils pour compiler Cogitant ou d'autres programmes. C'est pourquoi il est nécessaire d'installer, en plus du package Mingw, le package MSys (pour minimal system). Ce package fournit (entre autres) un shell qui est nécessaire à l'exécution du script configure, et peut être téléchargé à partir du site principal de Mingw.

Une fois que les packages Mingw et MSys sont installés, ouvrir une session MSys à l'aide du menu Démarrer, et lancer la compilation par un ./configure –disable-shared suivi d'un make.