Vous êtes ici

GTK+ 3.6.1 pour Windows 32-bits

À nouveau basée sur le dépôt OpenSUSE Factory, mais avec encore plus de professionnalisme ^^ (installeur amélioré, support du format SVG, meilleure répartition des fichiers entre "Runtime" et "Bundle"....) voici ma production du jour :

GTK+ 3.6.1 pour Windows 32-bits

* Juste les DLL et autres, requises pour exécuter les applications GTK+ 3 :
GTK+-Runtime-3.6.1_(TARNYKO).exe (17,2 Mo)

* Si vous voulez développer, ce paquet contient les bibliothèques d'import (dll.a) compatibles avec MinGW :
GTK+-Bundle-3.6.1_(TARNYKO).exe (27,6 Mo)

(EDIT : ajout des bibliothèques d'import Microsoft Visual C++ -fichiers .lib)

Commentaires

Bonjour tarnyko,

j'ai télécharger les 2 versions 3.6.1 et 3.4.2 mais aucune ne fonctionnent correctement. voici le programme que je tente de faire compiler;

main.c

#include
#include
#include "roundedrectangle.h"

int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//cairo_surface_t *surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 100, 100);
//cairo_t *cr = cairo_create(surface);
GtkWidget *image = gtk_image_new_from_file("C:/Users/Doudieu/Desktop/image.png");
gtk_widget_set_app_paintable(image, TRUE);
gtk_container_add(GTK_CONTAINER(win), image);
struct user_data data = {50,50,100,100,20};
user_t *dat;
dat = &data;
//g_signal_connect(G_OBJECT(win), "expose-event", G_CALLBACK(drawing), (gpointer)dat);
g_signal_connect(G_OBJECT(image), "expose-event", G_CALLBACK(drawing), (gpointer)dat);
gtk_widget_show_all(win);
gtk_main();
return 0;
}

roundedrectangle.c

#include "roundedrectangle.h"

int rounded_rectangle(cairo_t *cr, double x, double y, double width, double height, double radius[4])
{
if(((width<2*radius[0])&&(width<2*radius[1])&&(width<2*radius[2])&&(width<2*radius[3]))||((width<2*radius[0])&&(width<2*radius[1])&&(width<2*radius[2])&&(width<2*radius[3])))
{
printf("values of radius not good\n");
return -1;
}
double from_degre = PI/180;

//Corner C
cairo_arc(cr, x+width-radius[2], y+height-radius[2], radius[2], 0*from_degre, 90*from_degre);

//Corner D
cairo_arc(cr, x+radius[3], y+height-radius[3], radius[3], 90*from_degre, 180*from_degre);

//Corner A
cairo_arc(cr, x+radius[0], y+radius[0], radius[0], 180*from_degre, 270*from_degre);

//Corner B
cairo_arc(cr, x+width-radius[1], y+radius[1], radius[1], 270*from_degre, 360*from_degre);

cairo_close_path(cr);
return 0;
}

int rounded_rectangle_uni(cairo_t *cr, double x, double y, double width, double height, double radius)
{
double radius_uni[4] = {radius, radius, radius, radius};
if( rounded_rectangle( cr, x, y, width, height, radius_uni ) == -1)
{
printf("values of radius not good\n");
return -1;
}
return 0;
}

gboolean drawing(GtkWidget *win, cairo_t *cr, gpointer data)
{
GtkAllocation allo;
if(gtk_widget_get_app_paintable(win) == FALSE)
{
printf("background will be erase after\n");
return FALSE;
}
cairo_t *c = gdk_cairo_create(GDK_DRAWABLE(win->window));
gtk_widget_get_allocation(win, &allo);
struct user_data dat = *((user_t *)data);
cairo_set_source_rgba(c, 0.2, 0.1, 0, 1);
cairo_set_line_width(c, 4);
rounded_rectangle_uni(c, allo.x, allo.y, dat.width, dat.height, dat.border_radius);
cairo_stroke(c);
cairo_set_source_rgba(c, 0.0, 0.1, 0.2, 0.5);
rounded_rectangle_uni(c, allo.x, allo.y, dat.width, dat.height, dat.border_radius);
cairo_fill(c);
cairo_destroy(c);
return TRUE;
}

gboolean drawing1(GtkWidget *win, cairo_t *cr, gpointer data)
{
return TRUE;
}

roundedrectangle.h

#ifndef ROUNDED_RECTANGLE_H_INCLUDED
#define ROUNDED_RECTANGLE_H_INCLUDED

#endif // ROUNDED_RECTANGLE_H_INCLUDED
#include
#include
#define PI 3.141592653589793238462643383
typedef struct user_data user_t;

int rounded_rectangle(cairo_t *cr, double x, double y, double width, double height, double radius[4]);
int rounded_rectangle_uni(cairo_t *cr, double x, double y, double width, double height, double radius);

struct user_data
{
double x;
double y;
double width;
double height;
int border_radius;
};

gboolean drawing(GtkWidget *win, cairo_t *cr, gpointer data);
gboolean drawing1(GtkWidget *win, cairo_t *cr, gpointer data);

quelque soit la version, j'ai les erreurs suivantes:

-------------- Clean: Debug in cairo (compiler: GNU GCC Compiler)---------------

Cleaned "cairo - Debug"

-------------- Build: Debug in cairo (compiler: GNU GCC Compiler)---------------

mingw32-gcc.exe -mms-bitfields -Wall -g -mms-bitfields -Ic:/gtk+/include/atk-1.0 -Ic:/gtk+/include/cairo -Ic:/gtk+/include/gdk-pixbuf-2.0 -Ic:/gtk+/include/glib-2.0 -Ic:/gtk+/lib/glib-2.0/include -Ic:/gtk+/include/pango-1.0 -Ic:/gtk+/include -Ic:/gtk+/include/freetype2 -Ic:/gtk+/include/libpng14 -IC:/GTK+-3.6.1/include/gtk-3.0 -IC:\gtk+\include -IC:\gtk+\include\gtk-2.0 -IC:\gtk+\include\cairo -IC:\gtk+\include\gdk -IC:\gtk+\include\glib-2.0 -IC:\gtk+\lib\glib-2.0\include -IC:\gtk+\include\pango-1.0 -IC:\gtk+\lib\gtk-2.0\include -IC:\gtk+\include\atk-1.0 -IC:\gtk+\include\gdk-pixbuf-2.0 -c C:\Users\Doudieu\Desktop\cairo\main.c -o obj\Debug\main.o
In file included from C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdk.h:31:0,
from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtk.h:30,
from C:\Users\Doudieu\Desktop\cairo\main.c:2:
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:147:6: erreur: opérateur binaire manquant avant l'élément lexical « ( »
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:155:5: erreur: opérateur binaire manquant avant l'élément lexical « ( »
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:158:5: erreur: opérateur binaire manquant avant l'élément lexical « ( »
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:164:5: erreur: opérateur binaire manquant avant l'élément lexical « ( »
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:172:5: erreur: opérateur binaire manquant avant l'élément lexical « ( »
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:178:5: erreur: opérateur binaire manquant avant l'élément lexical « ( »
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:186:5: erreur: opérateur binaire manquant avant l'élément lexical « ( »
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:192:5: erreur: opérateur binaire manquant avant l'élément lexical « ( »
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:200:5: erreur: opérateur binaire manquant avant l'élément lexical « ( »
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:206:5: erreur: opérateur binaire manquant avant l'élément lexical « ( »
C:/GTK+-3.6.1/include/gtk-3.0/gdk/gdkversionmacros.h:214:5: erreur: opérateur binaire manquant avant l'élément lexical « ( »
In file included from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkwindow.h:33:0,
from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkdialog.h:33,
from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkaboutdialog.h:30,
from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtk.h:31,
from C:\Users\Doudieu\Desktop\cairo\main.c:2:
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkapplication.h:77:1: erreur: unknown type name 'GMenuModel'
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkapplication.h:80:49: erreur: unknown type name 'GMenuModel'
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkapplication.h:83:1: erreur: unknown type name 'GMenuModel'
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkapplication.h:86:49: erreur: unknown type name 'GMenuModel'
In file included from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkmenu.h:34:0,
from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtklabel.h:35,
from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkaccellabel.h:36,
from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtk.h:33,
from C:\Users\Doudieu\Desktop\cairo\main.c:2:
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkmenushell.h:117:41: erreur: unknown type name 'GMenuModel'
In file included from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtklabel.h:35:0,
from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkaccellabel.h:36,
from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtk.h:33,
from C:\Users\Doudieu\Desktop\cairo\main.c:2:
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkmenu.h:119:44: erreur: unknown type name 'GMenuModel'
In file included from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtk.h:58:0,
from C:\Users\Doudieu\Desktop\cairo\main.c:2:
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkbutton.h:84:1: erreur: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkbutton.h:86:1: erreur: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkbutton.h:88:1: erreur: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkbutton.h:90:1: erreur: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
In file included from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtk.h:131:0,
from C:\Users\Doudieu\Desktop\cairo\main.c:2:
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkmenubar.h:73:42: erreur: unknown type name 'GMenuModel'
In file included from C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtk.h:132:0,
from C:\Users\Doudieu\Desktop\cairo\main.c:2:
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkmenubutton.h:82:46: erreur: unknown type name 'GMenuModel'
C:/GTK+-3.6.1/include/gtk-3.0/gtk/gtkmenubutton.h:84:1: erreur: unknown type name 'GMenuModel'
Process terminated with status 1 (0 minutes, 4 seconds)
24 errors, 0 warnings (0 minutes, 4 seconds)

j'aimerais savoir s'il existe une solution à ces problèmes
Merci du temps que tu accordes à tout ceci.

Bonjour nar6du14 (Narcisse ^^ ?),

Ce code compile sans problèmes. Tu commets deux erreurs :
- avoir 2 chemins d'include conflictuels. Tu utilises apparemment 2 racines : "c:\gtk+" et "c:\gtk+-3.6.1", avec des headers qui se chevauchent ("include\cairo" p.ex.). Il ne faut pas faire ça ;
- utiliser simultanément GTK+2 et GTK+3. Je vois par exemple successivement "include\gtk-2.0" et "include\gtk-3.0". Il ne faut VRAIMENT pas faire ça ! Les types des deux bibliothèques se recoupent sans être identiques, d'où tes erreurs d'objets.

Mon conseil : installe cet environnement MinGW, désinstalle ou déréférence les autres, puis compile simplement avec :
gcc.exe -mms-bitfields -Wall -g -Ic:/vala-0.12.0/include/atk-1.0 -Ic:/vala-0.12.0/include/cairo -Ic:/vala-0.12.0/include/gdk-pixbuf-2.0 -Ic:/vala-0.12.0/include/glib-2.0 -Ic:/vala-0.12.0/lib/glib-2.0/include -Ic:/vala-0.12.0/include/pango-1.0 -Ic:/vala-0.12.0/include -Ic:/vala-0.12.0/include/freetype2 -Ic:/vala-0.12.0/include/libpng14 -IC:/vala-0.12.0/include/gtk-3.0 -IC:\vala-0.12.0\include -c main.c -o main.o

Succès garanti.

"BackConnectionHostNames"=hex(7):68,00,74,00,74,00,70,00,3a,00,2f,00,2f,00,69,\
00,6e,00,74,00,72,00,61,00,2e,00,62,00,6f,00,6f,00,6b,00,69,00,6e,00,65,00,\
72,00,2e,00,63,00,6f,00,6d,00,00,00,69,00,6e,00,74,00,72,00,61,00,2e,00,62,\
00,6f,00,6f,00,6b,00,69,00,6e,00,65,00,72,00,2e,00,63,00,6f,00,6d,00,00,00,\
00,00

Windows 64-bit edition possible?

Yes it will work ; you'll need to use a 32-bit compiler, though.
If you are looking for a native 64-bit build, have a look here tomorrow, same hour ^^.

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Cette question permet de vérifier que vous êtes un humain et d'éviter les commentaires automatiques.
Image CAPTCHA
Enter the characters shown in the image.