如何在Windows上安装GTK + 3.0?

时间:2015-09-18 22:55:26

标签: c windows gtk codeblocks gtk3

尝试在Codeblocks Win7上设置GTK + 3.0。在找到如何做到这一点时遇到一些麻烦。

GTK网站将您引导至msys2。似乎曾经在GTK网站上直接下载了一个不再存在的一体化Windows软件包。

按照说明,安装并更新了msys2后,我看到没有引用GTK +,在已安装的文件或GTK指示你的mysys网站上。

对于做一些应该简单的事情而言,它似乎非常狡猾。也许我错过了一些东西,但它不应该像下载压缩文件夹,提取和设置路径一样简单吗?

按照这个速度,你可以更快地学习C ++并使用Qt。

问题在于标题,我很惊讶我不得不问这个问题,似乎谷歌应该已经完全覆盖但我发现的所有内容都与GTK网站上不再提供的下载有关。我找不到关于msys2和GTK + 3.0的信息。

提前致谢。

5 个答案:

答案 0 :(得分:32)

  

欢迎来自Google用户的未来!自从我写这个答案以来,GTK +网站现在has official installation instructions涵盖了我在下面所说的内容,但更多的细节和更少的痛苦。请改为参考该页面。以下答案保留了历史原因。

GTK +网站的问题在于没有人可以维护这些二进制发行版。以前用于Windows的二进制发行版是GTK + 3.6,我相信它早在2012年就已发布了。当前版本是3.16,而3.18实际上远离发布。 MSYS2是唯一受支持的安装机制,它经常更新。

话虽如此,如果您使用MSYS路线,则需要单独安装GTK +; MSYS没有开箱即用的GTK +。从

开始
pacman -Ss gtk3

这应该给你一个可安装的软件包列表,包括32位和64位MinGW的GTK +库。我现在忘记了他们的确切名字。

找到想要的那个后,使用

pacman -S package-name-here

安装它。然后,从“开始”菜单的MSYS文件夹中打开MinGW 32位或64位Shell,开始开发。

如果您想要传统的IDE进行GTK +编程,请查看GNOME Builder或Anjuta。对于图形GUI设计师,请查看Glade。

答案 1 :(得分:9)

哈利路亚,我找到了获得GTK for Windows的理智的非Linux版本。

有人非常友好地上传到Dropbox GTK文件,只需下载并解压缩即可。这是其他任何碰到这场GTK / msys2灾难的人的链接。

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

这些文件确实应该在GTK Windows下载页面上提供,它让人信服。

关闭此线程,viva windows。

答案 2 :(得分:3)

我同意GNOME社区在这一点上有点张狂。 他们使GTK +安装几乎与Linux安装相同,这有点像给你麦当劳的百事可乐。

最糟糕的是它强迫你使用他们自己的垃圾甚至告诉你选择什么IDE,你将如何构建你的应用程序,你的应用程序将会有什么......(没什么个人的,我实际上总是喜欢Linux,我只是不偏不倚)

现在具体来说,您明确提到了Codeblocks。 不要使用code :: block的GTK + Project,它已经过时了。 您当然可以修改脚本或创建自己的脚本,但它仍然存在 让你慢下来我们,程序员重视我们的时间(我认为)

安装(至今)GTK3版本的程序。用于Code :: Blocks的Windows 7上的3.22.16非常简单。 首先下载MSYS2并在msys2 shell中输入:

pacman -S mingw-w64-x86_64-gtk3

(输入y确认) 然后

pacman -S mingw-w64-x86_64-toolchain base-devel (为了确保你有预编译的pkg-config二进制文件,并确保你有最新版本的gcc)

然后你在CodeBlocks中有一些工作,首先 从Codeblocks的编译器设置 - >设置新的编译器。工具链可执行文件。新编译器应位于C:\msys64\mingw64 (C或您安装MSYS的磁盘)

然后在Codeblocks的编译器设置中链接一些库 - >搜索目录: enter image description here 这些库足以运行这个简单的示例代码:

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

并得到如下结果:enter image description here

答案 3 :(得分:1)

几天前,我发送一封电子邮件给gtk的维护者之一,以获得vs 2017的帮助,这是这封信。在此之后,我选择在Windows上使用gtk 2.0

这是我的

我安装了msys2,我注意到,有很多头fil    在这个文件夹下.\msys64\mingw64\include所以,我想知道我是不是    可以直接在msys64到vs 2017下包含这些文件。并且让vs    2017年在文件夹下使用lib。就像这样......

这是他的

首先,除非您确定,否则我不建议使用msys版本 那 - 您不要尝试在代码中使用FILE结构 由GLib等使用 - 您使用的glibconfig.hglibcocnfig.h.win32匹配 您正在使用的GLib版本的源tarball,因为 针对GLib构建的所有内容都会受到影响。

如果你仍然决定沿着这条路走下去,你需要指定 链接时的库。见Linker->Input->Additional Dependencies, 您将需要至少以分号分隔的以下.lib files

  

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

     

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

     

油嘴-2.0.lib

     

开罗-gobject.lib

     

cairo.lib

     

intl.lib

可能fontconfig.libfreetype.lib,可能是msys64 构建包括对它们的支持。

您还需要链接到您可能用于的任何其他库 你的任务。之前使用尾随;预先添加这些库 %(AdditionalDependencies) (don't remove %(AdditionalDependencies))

祝福和欢呼!

嗯......我花了几天时间将程序移植到Windows上,在与gtk 3.x斗争之后,我发现你可以使用gtk 2.x来避免所有这些麻烦。这些是一些名为All-in-one bundle的旧文件 虽然重要的是要知道它,但它有一些安全问题,(另外你需要将它重写为gtk 2.0) 但是如果你主要使用linux,并且只想在windows上运行它,我建议你使用旧的All-in-one bundle来表示gtk 2.x 例如

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

答案 4 :(得分:1)

如果您正在寻找除了Msys2之外提供最新的MSVC兼容GTK3内容的项目,您应该签出gvsbuild和Microsoft的vcpkg。 在引擎盖下,前者使用python,后者使用cmake。