Retourner aux forums || Retourner au forum Programmation.c++
je débute en programmation graphique sous linux, en gtkmm, sous anjuta et avec libsigc++, le tout en même temps.
je suis donc allé sur le site de gtkmm, et consulté le tutoriel.
sur cette page : http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/ch03s06.html(...)
on y apprend comment faire un programme de bonjour le monde.
Mais lorsque je copie studieusement le code fourni, et que je lance, optimiste, la compilation, anjuta (et gcc derrière, j'imagine), m'envoie ballader par un laconique "sigc undeclared (first use in this function)"
correspondant à la ligne :
m_button.signal_clicked().connect(sigc::mem_fun(*this, &HelloWorld::on_button_clicked));
voici les includes fournis :
#include "HelloWorld.h"
#include
et dans HelloWorld.h :
#include <gtkmm/button.h>
#include <gtkmm/window.h>
rien qui définisse ce fameux 'sigc'
j'imagine qu'il est défini dans les entêtes de la libsigc++
j'ai trouvé que sur mon système (Debian SID) je possède les entêtes de 2 versions de cette bibliothèque : 1.2 et 2.0
je me suis également aperçu qu'Anjuta, par je ne sais quel moyen, inclue la version 1.2 de sigc++, car voici la commande de compilation appelée :
g++ -DHAVE_CONFIG_H -I. -I. -I.. -DXTHREADS -I/usr/include/gtkmm-2.0 -I/usr/lib/gtkmm-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/sigc++-1.2/include -I/usr/include/sigc++-1.2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/atk-1.0 -Wall -g -c HelloWorld.cpp
d'où ma question : quel fichier faut-il inclure pour pouvoir utiliser sigc et ses méthodes, et est-ce normal que la version de libsigc++ utilisée soit 1.2 et non 2.0 ?
Merci de votre aide !
François
> Lire le message (3 commentaires, moyenne: 2,3).
attention à la casse...
C'est SigC, pas sigc (dans la ligne incriminée)...
Et il y a encore pas longtemps (Gtkmm 2.2) c'était SigC::slot et non pas SigC::mem_fun
-
[^]Re: attention à la casse...
Posté par Nap (page perso, ) le 15/08/2004 à 20:56. (lien). Évalué à 2.merci beaucoup pour ta réponse, mais j'ai trouvé la solution (voir mon post plus bas)
solution
bon j'ai trouvé la solution :
anjuta utilise gtkmm-2.0, qui lui-même utilise libsigc++-1.2
tandis que gtkmm 2.4 utilise sigc++-2.0
il suffit d'éditer le fichier configure.in et deremplacer gtkmm2.0 par gtkmm2.4, et ensuite le pkg-config utilisé par anjuta fera appel à sigc++-2.0.
Il ne manque en fait aucun include, les include de gtkmm faisant le nécessaire.
avis à ceux qui ont le même problème...
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.c++



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.