Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Général Développement > Programmation Linux > GTK

GTK Vos questions sur GTK sous Linux

Réponse
 
Outils de la discussion
Vieux 06/10/2008, 17h01   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: octobre 2007
Messages: 68
Par défaut Premiere fenetre gtkmm

bonjour
je voudrai cree ma premier fenetre en gtkmm et evidament ca ne marche pas

j utilise eclipse sous linux.

mon code test est simple :

#include <gtkmm-2.4/gtkmm/main.h>
#include <gtkmm-2.4/gtkmm/window.h>
int main(int argc, char **argv)
{
Gtk::Main app(argc, argv);
Gtk::Window w;
app.run(w);
return 0;
}

Eclise pour la ligne Gtk::Main app(argc, argv);
ne dit variable "Gtk::Main app has been initialiser but incomlete type.

et pour Gtk::Window w;
no matching function to call gtk::windows::windows()

Le path de mes include est bon et correctement reconnu par eclise.

pour cree ce prog j ai cree un projet hello world et j y ai mit le code a tester de gtkmm

quelqu un a une idéé. je suis certain que c ets totu bete en plus..


Merci.
voila le log.
===============================
**** Build of configuration Debug for project gtk2 ****

make all
Building file: ../src/gtk2.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/gtk2.d" -MT"src/gtk2.d" -o"src/gtk2.o" "../src/gtk2.cpp"
/usr/include/gtkmm-2.4/gtkmm/main.h:52: erreur: ‘sigc’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/main.h:52: erreur: nom du typedef peut ne pas être un nom de spécificateur imbriqué
/usr/include/gtkmm-2.4/gtkmm/main.h:52: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/main.h:54: erreur: ‘sigc’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/main.h:54: erreur: expected ‘;’ before ‘connect’
/usr/include/gtkmm-2.4/gtkmm/main.h:57: erreur: ‘gboolean’ does not name a type
/usr/include/gtkmm-2.4/gtkmm/main.h:65: erreur: ‘sigc’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/main.h:65: erreur: nom du typedef peut ne pas être un nom de spécificateur imbriqué
/usr/include/gtkmm-2.4/gtkmm/main.h:65: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/main.h:67: erreur: ‘sigc’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/main.h:67: erreur: expected ‘;’ before ‘connect’
/usr/include/gtkmm-2.4/gtkmm/main.h:70: erreur: ‘gboolean’ does not name a type
/usr/include/gtkmm-2.4/gtkmm/main.h:78: erreur: ‘sigc’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/main.h:78: erreur: nom du typedef peut ne pas être un nom de spécificateur imbriqué
/usr/include/gtkmm-2.4/gtkmm/main.h:78: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/main.h:80: erreur: ‘sigc’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/main.h:80: erreur: expected ‘;’ before ‘connect’
/usr/include/gtkmm-2.4/gtkmm/main.h:83: erreur: ‘GtkWidget’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/main.h:83: erreur: ‘GdkEventKey’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/main.h:83: erreur: ‘gpointer’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/main.h:114: erreur: ‘sigc’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/main.h:114: erreur: expected `{' before ‘trackable’
/usr/include/gtkmm-2.4/gtkmm/main.h:114: erreur: déclaration de fonction invalide
/usr/include/gtkmm-2.4/gtkmm/window.h:60: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:60: erreur: expected `{' before ‘Object’
/usr/include/gtkmm-2.4/gtkmm/window.h:60: erreur: déclaration de fonction invalide
/usr/include/gtkmm-2.4/gtkmm/window.h:154: erreur: expected class-name before ‘{’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:176: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:183: erreur: ‘GType’ does not name a type
/usr/include/gtkmm-2.4/gtkmm/window.h:184: erreur: ‘GType’ does not name a type
/usr/include/gtkmm-2.4/gtkmm/window.h:215: erreur: expected `)' before ‘type’
/usr/include/gtkmm-2.4/gtkmm/window.h:665: erreur: ‘WindowType’ does not name a type
/usr/include/gtkmm-2.4/gtkmm/window.h:668: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:668: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:669: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:669: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:677: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:677: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:685: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:685: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:701: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:709: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:709: erreur: expected ‘;’ before ‘get_title’
/usr/include/gtkmm-2.4/gtkmm/window.h:723: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:741: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:751: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:751: erreur: expected ‘;’ before ‘get_role’
/usr/include/gtkmm-2.4/gtkmm/window.h:759: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:765: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:773: erreur: ‘WindowPosition’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:894: erreur: ‘Gdk’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:894: erreur: expected ‘,’ or ‘...’ before ‘hint’
/usr/include/gtkmm-2.4/gtkmm/window.h:899: erreur: ‘Gdk’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:899: erreur: expected ‘;’ before ‘get_type_hint’
/usr/include/gtkmm-2.4/gtkmm/window.h:1017: erreur: ‘Gdk’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1017: erreur: expected ‘,’ or ‘...’ before ‘gravity’
/usr/include/gtkmm-2.4/gtkmm/window.h:1023: erreur: ‘Gdk’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1023: erreur: expected ‘;’ before ‘get_gravity’
/usr/include/gtkmm-2.4/gtkmm/window.h:1035: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1046: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1054: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1054: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1061: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1061: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1174: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1174: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1181: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1181: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1210: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1233: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1248: erreur: expected unqualified-id before ‘&’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1248: erreur: expected ‘,’ or ‘...’ before ‘&’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1257: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1257: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1264: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1264: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1276: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1282: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1282: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1291: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1300: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1313: erreur: expected unqualified-id before ‘&’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1313: erreur: expected ‘,’ or ‘...’ before ‘&’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1354: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1354: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1361: erreur: ‘guint’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1368: erreur: ‘guint’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1376: erreur: ‘guint’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1376: erreur: ‘Gdk’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1376: erreur: expected ‘,’ or ‘...’ before ‘modifier’
/usr/include/gtkmm-2.4/gtkmm/window.h:1383: erreur: ‘Gdk’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1383: erreur: expected ‘,’ or ‘...’ before ‘modifier’
/usr/include/gtkmm-2.4/gtkmm/window.h:1390: erreur: ‘Gdk’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1390: erreur: expected ‘;’ before ‘get_mnemonic_modifier’
/usr/include/gtkmm-2.4/gtkmm/window.h:1420: erreur: ‘guint32’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1546: erreur: ‘Gdk’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1546: erreur: expected ‘,’ or ‘...’ before ‘edge’
/usr/include/gtkmm-2.4/gtkmm/window.h:1561: erreur: ‘guint32’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1825: erreur: expected ‘,’ or ‘...’ before ‘::’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1833: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1833: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1840: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1840: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1903: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1903: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h:1923: erreur: ‘Glib’ has not been declared
/usr/include/gtkmm-2.4/gtkmm/window.h:1923: erreur: expected ‘;’ before ‘<’ token
/usr/include/gtkmm-2.4/gtkmm/window.h: In member function ‘GtkWindow* Gtk::Window::gobj()’:
/usr/include/gtkmm-2.4/gtkmm/window.h:188: erreur: ‘gobject_’ was not declared in this scope
/usr/include/gtkmm-2.4/gtkmm/window.h: In member function ‘const GtkWindow* Gtk::Window::gobj() const’:
/usr/include/gtkmm-2.4/gtkmm/window.h:191: erreur: ‘gobject_’ was not declared in this scope
/usr/include/gtkmm-2.4/gtkmm/window.h: At global scope:
/usr/include/gtkmm-2.4/gtkmm/window.h:1942: erreur: expected constructor, destructor, or type conversion before ‘<’ token
../src/gtk2.cpp: In function ‘int main(int, char**)’:
../src/gtk2.cpp:30: erreur: variable ‘Gtk::Main app’ has initializer but incomplete type
../src/gtk2.cpp:31: erreur: no matching function for call to ‘Gtk::Window::Window()’
/usr/include/gtkmm-2.4/gtkmm/window.h:177: note: candidats sont: Gtk::Window::Window(GtkWindow*)
/usr/include/gtkmm-2.4/gtkmm/window.h:176: note: Gtk::Window::Window(int)
/usr/include/gtkmm-2.4/gtkmm/window.h:172: note: Gtk::Window::Window(const Gtk::Window&)
make: *** [src/gtk2.o] Erreur 1
lezurp est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/10/2008, 17h15   #2 (permalink)
Modérateur
 
Date d'inscription: janvier 2005
Messages: 688
Envoyer un message via ICQ à teuf13
Par défaut

T'as filé à eclipse les lignes pkg-config qui vont bien pour lui indiquer où chercher les headers/libs gtkmm ? Tu peux jeter un oeil à http://gtkmm.org/docs/gtkmm-2.4/exam...ok/helloworld/ aussi
teuf13 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/10/2008, 17h37   #3 (permalink)
Nouveau membre du Club
 
Date d'inscription: octobre 2007
Messages: 68
Par défaut

merci pour le lien avec l exemple.

eu non je pensais que en donnant mon path complet. telque

#include <gtkmm-2.4/gtkmm/main.h>

et vu que dans l ide eclipse change l asspect de header je me susi dit qu il connait leur path.

si il faut faire autre chose, eu je ne voie pas trop..
je sais moyen ce que je dois ajoute en fait
lezurp est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/10/2008, 17h50   #4 (permalink)
Nouveau membre du Club
 
Date d'inscription: octobre 2007
Messages: 68
Par défaut

j ai bien trouver ca :

http://kapo-cpp.blogspot.com/2007/02...d-eclipse.html

mais mon eclipse ne resemble pas vraiment a celui la et du coup je ne voie pas quel champ je dois remplir.

j utilise la 3.4.0
lezurp est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/10/2008, 18h53   #5 (permalink)
Nouveau membre du Club
 
Date d'inscription: octobre 2007
Messages: 68
Par défaut

je me susi dit que je devrai essaye sans eclipse:

quand je fesait :
pkg-config --cflags gtkmm-2.4

j avais:

Package gobject-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gobject-2.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'gobject-2.0', required by 'GLibmm', not found

j ai donc ajouter le path:

telque:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig

mais quand je compile mon code j obtient cette fois un autre message d ereur pas du mem type::

g++ testgtk3.cpp -o testgtk3 `pkg-config gtkmm-2.4 --cflags --libs`
/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h: In static member function ‘static bool Glib::Container_Helpers::TypeTraits<bool>::to_cpp_type(gboolean*)’:
/usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:335: erreur: cast from ‘gboolean*’ to ‘gint’ loses precision


la par contre je dirai que je ne sais pas du tout quoi faire ........

maitenant pkg-config me donne:

pkg-config --cflags gtkmm-2.4
-I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/atk-1.0 -I/usr/include/glibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include -I/usr/include/cairomm-1.0

Dernière modification par lezurp ; 06/10/2008 à 19h07
lezurp est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/10/2008, 17h00   #6 (permalink)
Nouveau membre du Club
 
Date d'inscription: octobre 2007
Messages: 68
Par défaut

bon alors j ai essayer d installer et compiler un petit soft basé sur gtk.

le resultat est le meme il me fait des erreur de compilation du meme genre passage d un type vers un autre echoue..
par contre le soft don je recupaire les binaire et qui utilise gtk eu focntione..

j utilise fedora 8, et j utilise les dernier package disponible par le gestionaire de package.. j ai essaye un mixe de plusieur version. mais aucun succes. je ne sais plus trop quoi faire...

un ou 2 conseil serai la les bien venu...

et peu etre qu un moderateur pourai passer mon post dans la sous section gtk+ il me semble que j auria du mettre mon poste dans cette section depusi le debut.
Merci.
lezurp est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/10/2008, 17h36   #7 (permalink)
Modérateur
 
Date d'inscription: janvier 2005
Messages: 688
Envoyer un message via ICQ à teuf13
Par défaut

J'ai pris le code dans ton premier message, j'ai fait
Code :
 
 gcc $(pkg-config --cflags --libs gtkmm-2.4) ./toto.cc 
 
et ca fonctionne sur ma distribution
teuf13 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/11/2008, 12h33   #8 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: décembre 2006
Âge: 25
Messages: 28
Par défaut

Salut
Citation:
Envoyé par lezurp Voir le message
#include <gtkmm-2.4/gtkmm/main.h>

et vu que dans l ide eclipse change l aspect de header je me susi dit qu il connait leur path.
Eclipse reconnais l'inclusion car tu mes dans ton code un chemin relatif depuis /usr/include (ou autre) mais si tu regardes dans les fichiers d'entête gtkmm tu verra des inclusions du type (exemple dans gtkmm.h)
Code :
#include <glibmm.h>
#include <giomm.h>
#include <gdkmm.h>
 
#include <gtkmm/object.h>
#include <gtkmm/aboutdialog.h>
#include <gtkmm/accelkey.h>
#include <gtkmm/accelgroup.h>
...
ces fichiers ne sont pas accessible à partir de /usr/include mais des repertoires que donne `pkg-config --cflags --libs gtkmm-2.4`. tu es donc obligé de demander soit à Eclipse soit directement au compilateur de regarder dans ces repertoires (et donc autant utiliser les inclusions standard dans ton code, c'est beaucoup mieux).

Eclipse CDT n'a pas de réel support de pkg-config, il te faudra donc :
- soit ajouter un à un les répertoires donnés par pkg-config (fastidieux)
- soit utilier le script dispo ici (conseillé)
pour indiquer directement au compilateur : ajouter les commandes `pkg-config --cflags gtkmm-2.4` et `pkg-config --libs gtkmm-2.4` quelque part dans les options de compilation et de linking de ton projet. C'est le plus rapide mais il y a de grandes chances qu'Eclipse continuent à ne pas reconnaitre les inclusions (même si ça compile)

Rémi
remitbo est déconnecté   Envoyer un message privé Réponse avec citation
NEWS GTK+FAQ GTK+TUTORIELS GTK+SOURCES GTK+BIBLIOTHEQUESLIVRES GTK+OUTILS GTK+BLOG

Réponse

Précédent   Forum des développeurs > Général Développement > Programmation Linux > GTK



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide