web-dev-qa-db-fra.com

Comment installez-vous GTK + 3.0 sur Windows?

Essayer de configurer GTK + 3.0 sur Codeblocks Win7. Ayant du mal à trouver exactement comment procéder.

Le site Web GTK vous dirige vers msys2. Il semble qu'il y ait eu un téléchargement direct sur le site GTK d'un bundle Windows tout-en-un qui n'existe plus.

Après avoir suivi les instructions, installé et mis à jour msys2, je ne vois aucune référence à GTK +, dans les fichiers installés ou sur le site mysys vers lequel GTK vous dirige.

Cela semble très linuxy en termes d'être inutilement et stupidement peu clair pour faire quelque chose qui devrait être simple. Peut-être que je manque quelque chose, mais ne devrait-il pas être aussi simple que de télécharger un dossier zippé, d'extraire et de configurer des chemins?

À ce rythme, je devrais apprendre plus rapidement le C++ et aller avec Qt.

La question est dans le titre, je suis étonné de devoir poser la question, il semble que Google devrait avoir complètement couvert, mais tout ce que je trouve concerne un téléchargement qui n'est plus disponible sur le site Web de GTK. Je ne trouve aucune information concernant msys2 et GTK + 3.0.

Merci d'avance.

29
NOP da CALL

Bienvenue, utilisateurs Google du futur! Depuis que j'ai écrit cette réponse, le site Web GTK + maintenant a des instructions d'installation officielles qui couvrent ce que j'ai dit ci-dessous mais avec plus de détails et moins de douleur. Reportez-vous plutôt à cette page. La réponse ci-dessous a été conservée pour des raisons historiques.

Le problème avec le site Web GTK + est qu'il n'y a personne pour maintenir ces distributions binaires. La distribution binaire précédente pour Windows était pour GTK + 3.6, qui a été publiée je crois en 2012, sinon plus tôt. La version actuelle est 3.16, et 3.18 est littéralement jours loin d'être publiée. MSYS2 est le seul mécanisme d'installation pris en charge et il est mis à jour assez fréquemment.

Cela étant dit, vous devez installer GTK + séparément si vous utilisez la route MSYS; MSYS n'est pas livré avec GTK + prêt à l'emploi. Commencer avec

pacman -Ss gtk3

Cela devrait vous donner une liste des packages possibles à installer, y compris les bibliothèques GTK + pour MinGW 32 bits et 64 bits. J'oublie leurs noms exacts maintenant.

Une fois que vous avez trouvé celui que vous voulez, utilisez

pacman -S package-name-here

pour l'installer. Ensuite, ouvrez le shell MinGW 32 bits ou 64 bits à partir du dossier MSYS du menu Démarrer pour commencer le développement.

Si vous voulez un traditionnel IDE pour la programmation GTK +, recherchez GNOME Builder ou Anjuta. Pour un concepteur graphique GUI, recherchez Glade.

34
andlabs

Alléluia, j'ai trouvé la version non linux sensée d'obtenir GTK pour Windows.

Quelqu'un a eu la gentillesse de télécharger sur Dropbox les fichiers GTK, il suffit de télécharger et d'extraire. Voici le lien pour quiconque se heurte à cette catastrophe GTK/msys2.

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

Ces fichiers devraient vraiment être disponibles sur la page de téléchargement de GTK Windows, cela laisse croire.

Fermez ce fil, viva windows.

10
NOP da CALL

Je suis d'accord que la communauté GNOME est un peu insolente à ce point. Ils ont fait l'installation de GTK + presque la même que celle de Linux, ce qui revient un peu à vous donner du pepsi dans mcdonalds.

Le pire est qu'il vous oblige à utiliser sa propre merde dans la mesure où il vous dit même ce que IDE choisir, comment vous allez construire votre application , ce qui aura dans votre application .. (Rien de personnel, je préfère en fait toujours Linux, je suis juste impartial)


Maintenant, pour être précis, vous avez explicitement mentionné les blocs de code. N'utilisez pas le projet GTK + de code :: block, il est terriblement obsolète. Vous pouvez, bien sûr, modifier le script ou créer le vôtre, mais cela va encore vous ralentir et nous, les programmeurs apprécions notre temps (je pense)

La procédure d'installation (à ce jour) de GTK3 ver. 3.22.16 sur Windows 7 pour une utilisation avec Code :: Blocks s'avère assez simple. Téléchargez d'abord MSYS2 et tapez dans le shell msys2:

pacman -S mingw-w64-x86_64-gtk3

(Entrez y pour confirmer) Ensuite

pacman -S mingw-w64-x86_64-toolchain base-devel (pour vous assurer que vous aurez des binaires précompilés de pkg-config et pour vous assurer que vous aurez la dernière version de gcc)

Ensuite, vous avez du travail dans CodeBlocks, définissez d'abord le nouveau compilateur, à partir des paramètres du compilateur de Codeblocks -> exécutables de la chaîne d'outils. Le nouveau compilateur doit être situé dans C:\msys64\mingw64 (C ou le disque dans lequel vous avez installé MSYS)

Ensuite, liez certaines bibliothèques dans les paramètres du compilateur de Codeblocks -> Rechercher dans les répertoires: enter image description here Ces bibliothèques seront suffisantes pour exécuter cet exemple de code simple:

#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;
}

et avoir un résultat comme celui-ci: enter image description here

4
Edenia

Il y a quelques jours, j'envoie un e-mail à l'un des responsables de gtk pour obtenir de l'aide par rapport à 2017, et voici la lettre. Après cela, j'ai choisi d'utiliser GTK 2.0 sur Windows

C'est à moi

J'ai installé le msys2, Et j'ai remarqué qu'il y a beaucoup de filles dans ce dossier .\msys64\mingw64\include Donc, je me demande si je peux inclure directement ce fichier sous msys64 Pour vs 2017. Et laissez vs 2017 pour utiliser lib sous le dossier. Comme ceci ......

et c'est de lui

Tout d'abord, je ne recommande pas d'utiliser les builds msys, sauf si vous êtes sûr que -Vous n'essayez pas d'utiliser les structures FILE dans votre code avec celles utilisées par GLib, etc. -Le glibconfig.h Que vous utilisez correspond au glibcocnfig.h.win32 dans l'archive tar source de la version de GLib que vous utilisez, car tout ce qui est construit contre GLib en sera affecté.

Si vous décidez toujours de suivre cette voie, vous devez spécifier les bibliothèques lors de la liaison. Voir Linker->Input->Additional Dependencies, Vous aurez besoin d'au moins les .lib files Suivants, séparés par des points-virgules:

gtk-3.0.lib (ou gtk-3.lib)

gdk-3.0.lib (ou 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

cairo.lib

intl.lib

et éventuellement fontconfig.lib et freetype.lib, comme probablement les builds msys64 incluent leur support.

Vous devrez également créer un lien vers toute autre bibliothèque que vous pourriez utiliser pour votre affectation. Ajoutez à ces bibliothèques un ; Avant %(AdditionalDependencies) (don't remove %(AdditionalDependencies))

Avec des bénédictions et des acclamations!

Eh bien ... j'ai passé plusieurs jours à porter mon programme sur Windows, après des difficultés avec gtk 3.x, J'ai découvert que vous pouvez utiliser gtk 2.x Pour éviter tous ces problèmes. Ce sont d'anciens fichiers appelés All-in-one bundle Bien qu'il soit important de savoir que, il y a un problème de sécurité avec lui, (en plus vous devez le réécrire dans gtk 2.0) mais si vous utilisez principalement linux, et que vous voulez juste pour l'exécuter sur Windows, je vous suggère d'utiliser l'ancien All-in-one bundle pour gtk 2.x par exemple

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

2
Z-Y00

Si vous recherchez des projets qui, à part Msys2, fournissent des éléments GTK3 à jour et compatibles MSVC, vous devriez vérifier gvsbuild et Microsoft vcpkg . Sous le capot, le premier utilise python et le dernier utilise cmake.

1
sgeto