Installer GTK+3 sous codeBlocks linuxMintDebian C++
Résolu
nocrazy
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
mamiemando Messages postés 33687 Date d'inscription Statut Modérateur Dernière intervention - 19 nov. 2015 à 09:23
mamiemando Messages postés 33687 Date d'inscription Statut Modérateur Dernière intervention - 19 nov. 2015 à 09:23
A voir également:
- Installer GTK+3 sous codeBlocks linuxMintDebian C++
- Codeblocks - Télécharger - Langages
- Installer clavier arabe - Télécharger - Divers Web & Internet
- Installer windows 10 sans compte microsoft - Guide
- Ai suite 3 - Télécharger - Optimisation
- Installer chromecast sur tv - Guide
2 réponses
Bonjour
1) Commence par utiiliser
Exemple :
On voit ici que c'est le paquet
2) Installe le paquet correspondant :
3) Passe au compilateur les options nécessaire pour trouver le headers. Par défaut il va chercher des headers dans
Ce n'est évidemment pas super car ton code devient dépendant de la version de gtk-3, ce qui n'est évidemment pas souhaitable. Il faut donc bien faire l'inclusion comme tu l'as faite (
Bonne chance
1) Commence par utiiliser
apt-filepour déterminer quel est le bon paquet :
sudo apt-get update
sudo apt-get install apt-file
apt-file update
apt-file search gtk-3 | grep "gtk/gtk.h"
Exemple :
(mando@velvet) (~) $ apt-file search gtk-3 | grep "gtk/gtk.h"
libgtk-3-dev: /usr/include/gtk-3.0/gtk/gtk.h
libgtk-3-dev: /usr/include/gtk-3.0/gtk/gtkcheckbutton.h
libgtk-3-dev: /usr/include/gtk-3.0/gtk/gtkcheckmenuitem.h
libgtk-3-dev: /usr/include/gtk-3.0/gtk/gtkshow.h
On voit ici que c'est le paquet
libgtk-3-dev
2) Installe le paquet correspondant :
apt-get install libgtk-3-dev
3) Passe au compilateur les options nécessaire pour trouver le headers. Par défaut il va chercher des headers dans
/usr/include. Sans options il faudrait donc ici que tu inclues
#include <gtk-3.0/gtk/gtk.h>.
Ce n'est évidemment pas super car ton code devient dépendant de la version de gtk-3, ce qui n'est évidemment pas souhaitable. Il faut donc bien faire l'inclusion comme tu l'as faite (
#include <gtk/gtk.h>), mais tu dois du coup préciser au compilateur qu'il doit, en plus de
/usr/include, chercher des headers dans
/usr/include/gtk-3.0. Le numéro de version n'apparaîtra donc que dans ton makefile et sera facilement modifiable. Ceci se réalise avec l'option -I :
g++ -W -I/usr/include/gtk-3.0 fichier.cpp
Bonne chance
Bonjour Mamiemando,
merci pour ta réponse, tu m'avais déjà aidé pour une question précédente.
J'ai utilisé une méthode différente, trouver sur un site Anglophone,
dans le terminal, je tape:
LD_LIBRARY_PATH="/opt/gtk/lib"
PATH="/opt/gtk/bin:$/usr/include/gtk-3.0/gtk"
export LD_LIBRARY_PATH PATH
je n'ai pas de modifications supplémentaires à faire dans le code::blocks et je garde mon #include <gtk/gtk.h>
Je ne suis pas sur de ce que j'ai fait mais ça fonctionne.
merci pour ta réponse, tu m'avais déjà aidé pour une question précédente.
J'ai utilisé une méthode différente, trouver sur un site Anglophone,
dans le terminal, je tape:
LD_LIBRARY_PATH="/opt/gtk/lib"
PATH="/opt/gtk/bin:$/usr/include/gtk-3.0/gtk"
export LD_LIBRARY_PATH PATH
je n'ai pas de modifications supplémentaires à faire dans le code::blocks et je garde mon #include <gtk/gtk.h>
Je ne suis pas sur de ce que j'ai fait mais ça fonctionne.
Étrange cette solution, ça voudrait dire que la variable PATH est utilisée pour trouver des headers. En théorie elle ne sert qu'à trouver des exécutables. Vu qu'à mon avis tu n'as rien dans /opt/gtk (à vérifier) je pense que certaines parties de cette solution sont inutiles.
Mais bon l'essentiel, c'est que ça marche comme tu veux :-)
Mais bon l'essentiel, c'est que ça marche comme tu veux :-)
Oui on est d'accord, c'est pourquoi ça me surprend que la solution que tu as proposé ait pu régler ton problème.
Ton problème initial était un problème d'include (donc pour trouver les .h et .hpp), or les variables d'environnement que tu as mentionnées servent à lister des répertoires où chercher des exécutables (rôle de PATH) et des librairies .so (rôle de LD_LIBRARY_PATH).
Ton problème initial était un problème d'include (donc pour trouver les .h et .hpp), or les variables d'environnement que tu as mentionnées servent à lister des répertoires où chercher des exécutables (rôle de PATH) et des librairies .so (rôle de LD_LIBRARY_PATH).