¿Cómo instalar GTK + 3.0 en Windows?


Intentando configurar GTK+ 3.0 en Codeblocks Win7. Tener algunos problemas para encontrar exactamente cómo hacer esto.

El sitio web de GTK le dirige a msys2. Parece que una vez hubo una descarga directa en el sitio de GTK para un paquete de Windows todo en uno que ya no está allí.

Después de haber seguido las instrucciones, instalado y actualizado msys2, no veo ninguna referencia a GTK+, en los archivos instalados o en el sitio web de mysys al que GTK le dirige.

Parece muy linuxy en términos de ser innecesariamente y estúpidamente poco claro para hacer algo que debería ser simple. Tal vez me falta algo, pero ¿no debería ser tan simple como descargar una carpeta comprimida, extraer y configurar rutas?

A este ritmo, será más rápido aprender C++ e ir con Qt.

La pregunta está en el título, me sorprende que tenga que hacer la pregunta, parece que Google debería haber cubierto por completo, pero todo lo que estoy encontrando está relacionado con una descarga que ya no está disponible en el sitio web de GTK. No puedo encontrar información sobre msys2 y GTK + 3.0.

Gracias de antemano.

Author: liberforce, 2015-09-19

6 answers

¡Bienvenidos, usuarios de Google del futuro! Desde que escribí esta respuesta, el sitio web de GTK + ahora tiene instrucciones oficiales de instalación que cubren lo que dije a continuación, pero con más detalles y menos dolor. Refiérase a esa página en su lugar. La respuesta a continuación se ha mantenido por razones históricas.

El problema con el sitio web de GTK+ es que no hay nadie que mantenga estas distribuciones binarias. La distribución binaria anterior para Windows era para GTK + 3.6, que era lanzado creo que en 2012, si no antes. La versión actual es 3.16, y 3.18 está literalmente días de ser lanzado. MSYS2 es el único mecanismo de instalación soportado, y se actualiza con suficiente frecuencia.

Dicho esto, necesita instalar GTK+ por separado si usa la ruta MSYS; MSYS no viene con GTK+ de forma predeterminada. Comenzar con

pacman -Ss gtk3

Eso debería darle una lista de posibles paquetes a instalar, incluyendo las bibliotecas GTK + para ambos MinGW de 32 y 64 bits. Ahora olvido sus nombres exactos.

Una vez que encuentre el que desea, use

pacman -S package-name-here

Para instalarlo. Luego, abra el Shell MinGW de 32 bits o 64 bits desde la carpeta MSYS del menú Inicio para comenzar a desarrollar.

Si desea un IDE tradicional para la programación GTK+, busque GNOME Builder o Anjuta. Para un diseñador gráfico de GUI, busque Glade.

 28
Author: andlabs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-16 03:57:09

Aleluya, he encontrado la versión sana no linux de getting GTK para windows.

Alguien tuvo la amabilidad de subir a dropbox los archivos GTK, simplemente descargarlos y extraerlos. Aquí está el enlace para cualquier otra persona que se tope con este desastre de GTK/msys2.

Https://www.dropbox.com/sh/8d1qbh5dsp044on/UgkALzhlqH

Estos archivos realmente deberían estar disponibles en la página de descarga de GTK Windows, es increíble.

Cierra este hilo, viva windows.

 8
Author: NOP da CALL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-18 23:59:43

Estoy de acuerdo en que la comunidad GNOME está siendo un poco insolente hasta este punto. Hicieron la instalación de GTK + casi lo mismo que la instalación de Linux, que es un poco como darle pepsi en mcdonalds.

Lo peor es que te está obligando a usar su propia mierda hasta el punto de que incluso te dicen qué IDE elegir, cómo construirás tu aplicación, lo que tendrá en tu aplicación.. (Nada personal, en realidad siempre prefiero Linux, solo estoy siendo imparcial)


Ahora será específicamente, mencionaste explícitamente Codeblocks. No utilice el proyecto GTK + de code::block, está terriblemente desactualizado. Puede, por supuesto, modificar el script o crear el suyo propio, pero todavía está en marcha para ralentizarte a ti y a nosotros, los programadores valoramos nuestro tiempo (creo)

El procedimiento de instalación (hasta el día de hoy) GTK3 ver. 3.22.16 en Windows 7 para su uso con Code:: Blocks resulta ser bastante simple. Primero descargue MSYS2 y escriba dentro del shell msys2:

pacman -S mingw-w64-x86_64-gtk3

(Enter y confirmar) Entonces

pacman -S mingw-w64-x86_64-toolchain base-devel (para asegurarse de que tendrá binarios precompilados de pkg-config y para asegurarse de que tendrá la última versión de gcc)

Entonces tienes algo de trabajo en CodeBlocks, primero establezca el nuevo compilador, desde la configuración del compilador de Codeblocks - > ejecutables de la cadena de herramientas. El nuevo compilador debe estar ubicado en C:\msys64\mingw64 (C o el disco en el que instaló MSYS)

Luego enlaza algunas bibliotecas en la configuración del compilador de Codeblocks - > Directorios de búsqueda: introduzca la descripción de la imagen aquí Estos las bibliotecas serán suficientes para ejecutar este simple código de ejemplo:

#include <gtk/gtk.h>

static void activate (GtkApplication* app, gpointer user_data)
{
    GtkWidget *window;

    window = gtk_application_window_new(app);
    gtk_window_set_title(GTK_WINDOW (window), "Window");
    gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);
    gtk_widget_show_all(window);
}

int main (int argc, char *argv[])
{
    GtkApplication *app;
    int status;

    app     = gtk_application_new("org.gtk.example", G_APPLICATION_FLAGS_NONE);
    g_signal_connect(app, "activate", G_CALLBACK (activate), NULL);
    status  = g_application_run(G_APPLICATION (app), argc, argv);
    g_object_unref(app);

    return status;
}

Y tener un resultado como este:introduzca la descripción de la imagen aquí

 2
Author: Edenia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-17 10:38:42

Hace días envío un correo electrónico a uno de los mantenedores de gtk para obtener ayuda con vs 2017, y aquí está la carta. Después de esto , elegí usar gtk 2.0 en windows

Esto es mío

Instalé el msys2, y me di cuenta de que , hay muchas fille cabeza debajo de esta carpeta .\msys64\mingw64 \ include So, me pregunto si puede incluir directamente los archivos bajo msys64 a vs 2017. Y dejar vs 2017 para usar lib debajo de la carpeta.así......

Y esto es de [1]]}

En primer lugar, no recomiendo usar las compilaciones de msys, a menos que esté seguro que -Usted no intenta utilizar las estructuras de ARCHIVOS en su código con los que utilizado por GLib, etc. -El glibconfig.h que está utilizando coincide con el glibcocnfig.h. win32 en el código fuente de la versión de GLib que está utilizando, porque todo lo que se construye contra la simpleza se verá afectado por ella.

Si todavía decide ir por esta ruta, debe especificar la bibliotecas cuando se enlaza. Ver Enlazador - >Entrada - >Dependencias adicionales, necesitará al menos lo siguiente .archivos lib, separados por punto y coma:

Gtk-3.0.lib (o gtk-3.lib)

Gdk-3.0.lib (o gdk-3.lib)

Gdk_pixbuf-2.0.lib

Pangocairo-1.0.lib

Pango-1.0.lib

Atk-1.0.lib

Gio-2.0.lib

Gobject-2.0.lib

Gmodule-2.0.lib

Glib-2.0.lib

Cairo-gobject.lib

El Cairo.lib

Intl.lib

Y posiblemente fontconfig.lib y freetype.lib, como, probablemente, el msys64 las compilaciones incluyen soporte para ellas.

También tendrá que enlazar a cualquier otra biblioteca que pueda usar para tu misión. Anteponga estas bibliotecas con un ';' final antes %(AdditionalDependencies) (no eliminar %(AdditionalDependencies))

Con bendiciones, y salud!

Bueno...he pasado varios días para portar mi programa a Windows, después de luchar con gtk 3.x, encontré que puedes usar gtk 2.x para evitar todo esos problemas. estos son algunos archivos antiguos llamados ' Paquete todo en uno ' aunque es importante saber que, hay algún problema de seguridad con él, (además de que necesita reescribirlo a gtk 2.0) pero si está utilizando principalmente linux, y solo quiere que se ejecute en Windows, le sugeriré que use el antiguo 'Paquete Todo en uno' para gtk 2.x por ejemplo

Https://download.gnome.org/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip.mirrorlist

 1
Author: Z-Y00,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-12 12:47:38

Si está buscando proyectos que, aparte de Msys2, proporcionen material GTK3 actualizado y compatible con MSVC, debe revisar gvsbuild y Microsoft vcpkg. Bajo el capó, el primero usa python y el último usa cmake.

 1
Author: sgeto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-22 22:54:01

Hola hay un paquete msi de Gtk3 para Windows aquí: (gtk-runtime-3.8.1-i686) https://sourceforge.net/projects/gtk3win /

 -1
Author: DingoNobru,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-28 09:58:33