Fichiers d'en-têtes et édition des liens
Même si nous avons indiqué la commande de compilation pour cet exemple simple, vous devriez vraiment utiliser les outils automake et autoconf tels que décrits dans « Autoconf, Automake, Libtool » par G.V. Vaughan et autres. Les exemples utilisés dans le présent ouvrage sont incorporés dans le paquet logiciel de gtkmm, avec les fichiers de construction appropriés ; nous ne mentionnerons donc pas ces commandes dans le futur. Il conviendra simplement de trouver le répertoire convenable, de s'y placer et de saisir make.
Pour simplifier la compilation, nous utilisons pkg-config, présent dans toutes les installations de gtkmm (correctement effectuées). Ce programme « sait » quels sont les commutateurs nécessaires à la compilation des programmes utilisant gtkmm. L'option --cflags demande à pkg-config de produire la liste des répertoires des en-têtes, répertoires que le compilateur devra parcourir ; l'option --libs demande la liste des bibliothèques nécessaires à l'édition des liens par le compilateur ainsi que les répertoires où elles se trouvent. Essayez de lancer directement cette commande à l'invite de votre terminal pour voir les résultats sur votre système.
Mais, il est plus simple d'utiliser la macro PKG_CHECK_MODULES() dans un fichier standard configure.ac avec autoconf et automake. Par exemple :
PKG_CHECK_MODULES([MYAPP], [gtkmm-3.0 >= 3.0.0])
gtkmm-3.0 is the name of the current stable API. There was an older API called gtkmm-2-4 which installs in parallel when it is available. There were several versions of gtkmm-2.4, such as gtkmm 2.10 and there will be several versions of the gtkmm-3.0 API. Note that the API name does not change for every version because that would be an incompatible API and ABI break. Theoretically, there might be a future gtkmm-4.0 API which would install in parallel with gtkmm-3.0 without affecting existing applications.
Note that if you mention extra modules in addition to gtkmm-3.0, they should be separated by spaces, not commas.
Openismus fournit une Aide sur les fondamentaux avec automake et autoconf.