compiler un projet CodeBlocks Windows dans CodeBlocks Linux
bonjour,
J'ai un projet fabriqué sous gtk3.6 windows avec Codeblocks 13, la librairie goocanvas est installé également. Tout fonctionne.
Je débute totalement dans linux.
Je viens d'installer linux Ubuntu 13.10, codeblocks 13. (et goocanvas en tapant sudo apt-get install libgoocanvas-dev)
J'ai ensuite ouvert mon project dans Codeblocks linux et enlever les linker et compiler settings windows.
Puis dans compiler settings, j'ai mis :
Code:
`pkg-config gtk+-3.0 --flags`
et dans linker :
Code:
`pkg-config gtk+-3.0 --libs`
J'ai une erreur à la compil : goocanvas.h no such file or directory.
J'ai cherché dans google mais n'ai rien trouvé.
Que faire pour régler mon problème ?
essai avec un petit projet
Je suis de retour. J'ai essayé de compiler avec les settings suivants
Code:
1 2
| `pkg-config gtk+-3.0 goocanvas --cflags`
`pkg-config gtk+-3.0 goocanvas --libs` |
le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <glib.h>
#include <stdio.h>
#include <math.h>
#include <gtk/gtk.h>
#include <goocanvas.h>
#ifndef M_PI
#define M_PI 3.141592653
#endif
int main(int argc, char *argv[])
{
gtk_init (&argc, &argv);
GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 1260, 960);
gtk_window_move(GTK_WINDOW(window), 0, 0);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(window);
gtk_main ();
return 0;
} |
Les réglages de compiler settings et linker ont l'air d'etre bon car la compilation démarre mais j'ai un message d'erreur :
usr/include/goocanvas-1.0/goocanvastext.h error: unknown type name 'GtkAnchorType'
usr/include/goocanvas-1.0/goocanvaswidget.h error: unknown type name 'GtkAnchorType'
usr/include/goocanvas-1.0/goocanvas.h error: unknown type name 'GtkAnchorType'
Est ce que ça viendrait du fait que les versions de goocanvas sous linux seraient différentes ?
sous windows j'ai la version goocanvas 2.0.1 qui correspond à l'update pour gtk3, et sous linux je sais pas comment on fait pour connaitre la version ?
L'erreur de compil donne 1.0 mais est-ce bien la version ??
Si oui comment faire pour mettre à jour la version sous linux ?
Edit: j'ai trouve un lien http://ftp.gnome.org/pub/GNOME/sources/goocanvas/ pour recuperer goocanvas 2.0.1 mais je sais pas comment faire pour l'installer correctement sous ubuntu
edit 2 : il semble qu'on puisse l'installer avec apt-get install libgoocanvas-2.0-dev, je vais essayer ça ce soir
récapitulatif réglages codeblocks Ubuntu avec libxml et goocanvas
rebonjour,
Je poste la réponse pour ceux que ça interesse. Merci à Liberforce de m'avoir mis sur la voie
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <glib.h>
#include <stdio.h>
#include <math.h>
#include <gtk/gtk.h>
#include <goocanvas.h>
#include <libxml/parser.h>
#ifndef M_PI
#define M_PI 3.141592653
#endif
int main(int argc, char *argv[])
{
gtk_init (&argc, &argv);
GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 1260, 960);
gtk_window_move(GTK_WINDOW(window), 0, 0);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(window);
gtk_main ();
return 0;
} |
1- Installer Ubuntu
2- Ouvrir un terminal et installer les paquets gtk3 pour le développement
Code:
sudo apt-get install libgtk-3-dev
3 Installer goocanvas 2.0 (pour gtk3) (pour gtk2 prendre goocanvas 1.0)
Code:
sudo apt-get install libgoocanvas-2.0-dev
4 Installer libxml2
Code:
sudo apt-get install libxml2-dev
Réglages codeblocks:
Dans project, build options, onglet Compiler settings, onglet Other options
Code:
1 2
| `pkg-config gtk+-3.0 goocanvas-2.0 --cflags`
`xml2-config --cflags` |
Dans onglet Linker settings, onglet other linker options
Code:
1 2
| `pkg-config gtk+-3.0 goocanvas-2.0 --libs`
`xml2-config --libs` |
Et voilà, je vais pouvoir utiliser Valgrind :P :P :P