如何在 Windows 上安装 GTK+ 3.0?
How do you install GTK+ 3.0 on Windows?
正在尝试在 Codeblocks Win7 上设置 GTK+ 3.0。找不到确切的操作方法。
GTK 网站将您定向到 msys2。似乎曾经在 GTK 站点上直接下载一个 all-in-one Windows 包,但现在已经不存在了。
按照说明安装并更新了 msys2,但在已安装的文件或 GTK 引导您访问的 mysys 网站上,我没有看到对 GTK+ 的引用。
就不必要和愚蠢地不清楚做一些本应简单的事情而言,这似乎非常 linuxy。也许我遗漏了一些东西,但它不应该像下载压缩文件夹、解压缩和设置路径那样简单吗?
以这种速度学习 C++ 和使用 Qt 会更快。
问题在标题中,我很惊讶我不得不问这个问题,似乎 google 应该已经完全涵盖了,但我发现的所有内容都与下载无关GTK 网站上不再可用。我找不到有关 msys2 和 GTK+ 3.0 的信息。
提前致谢。
Hallelujah,我找到了为 windows 获取 GTK 的正常非 linux 版本。
有人好心上传了GTK文件到dropbox,下载解压即可。这是给遇到这场 GTK/msys2 灾难的任何其他人的 link。
https://www.dropbox.com/sh/8d1qbh5dsp044on/UgkALzhlqH
这些文件确实应该在 GTK Windows 下载页面上提供,这令人难以置信。
关闭此线程,万岁windows。
Welcome, Google users from the future! Since I wrote this answer, the GTK+ website now has official installation instructions that cover what I said below but with more details and less pain. Refer to that page instead. The answer below has been kept for historical reasons.
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。
我同意 GNOME 社区在这一点上有点无礼。
他们使 GTK+ 安装几乎与 Linux 安装相同,这有点像在麦当劳给你百事可乐。
最糟糕的是,它迫使你使用他们自己的废话,以至于他们甚至告诉你 IDE 选择什么,你将如何构建你的应用程序,你将拥有什么在你的应用程序中..(没有什么私人的,我实际上总是更喜欢 Linux,我只是不偏不倚)
具体来说,您明确提到了 Codeblocks。
不要使用 code::block 的 GTK+ 项目,它已经过时了。
当然,您可以修改脚本或创建自己的脚本,但它仍在继续
让你慢下来,我们程序员珍惜我们的时间(我认为)
安装(至今)GTK3 ver.的过程windows 7 上的 3.22.16 与 Code::Blocks 一起使用非常简单。
首先下载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的盘)
然后link在Codeblocks的编译器设置->搜索目录中的一些库:
这些库足以 运行 这个简单的示例代码:
#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;
}
结果如下:
几天前,我向 gtk 的一位维护者发送了一封电子邮件,寻求 vs 2017 的帮助,这是这封信。在此之后,我选择在 windows
上使用 gtk 2.0
这是我的
我安装了 msys2
,我注意到,有很多 head fille
在这个文件夹下 .\msys64\mingw64\include
所以,我想知道我是否
可以直接把msys64
下的那些文件包含到vs2017
下。让 vs
2017年使用lib下folder.like这个……
这是他写的
首先,我不推荐使用 msys 版本,除非你确定
那
-您不要尝试在您的代码中使用 FILE 结构
由 GLib 等使用。
- 您正在使用的 glibconfig.h
与中的 glibcocnfig.h.win32
匹配
您正在使用的 GLib 版本的源压缩包,因为
针对 GLib 构建的所有内容都会受其影响。
如果您仍然决定走这条路,您需要指定
link 时的图书馆。参见Linker->Input->Additional Dependencies
,
您至少需要以下 .lib files
,以分号分隔:
gtk-3.0.lib (or gtk-3.lib)
gdk-3.0.lib (or 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
可能还有 fontconfig.lib
和 freetype.lib
,可能是 msys64
构建包括对它们的支持。
您还需要 link 到您可能使用的任何其他库
你的任务。在这些库前加上尾随 ;
%(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
for gtk 2.x
例如
如果您正在寻找除 Msys2 之外还提供 up-to-date、MSVC-compatible GTK3 内容的项目,您应该 check-out gvsbuild and Microsoft's vcpkg。
在引擎盖下,前者使用 python 而后者使用 cmake.
正在尝试在 Codeblocks Win7 上设置 GTK+ 3.0。找不到确切的操作方法。
GTK 网站将您定向到 msys2。似乎曾经在 GTK 站点上直接下载一个 all-in-one Windows 包,但现在已经不存在了。
按照说明安装并更新了 msys2,但在已安装的文件或 GTK 引导您访问的 mysys 网站上,我没有看到对 GTK+ 的引用。
就不必要和愚蠢地不清楚做一些本应简单的事情而言,这似乎非常 linuxy。也许我遗漏了一些东西,但它不应该像下载压缩文件夹、解压缩和设置路径那样简单吗?
以这种速度学习 C++ 和使用 Qt 会更快。
问题在标题中,我很惊讶我不得不问这个问题,似乎 google 应该已经完全涵盖了,但我发现的所有内容都与下载无关GTK 网站上不再可用。我找不到有关 msys2 和 GTK+ 3.0 的信息。
提前致谢。
Hallelujah,我找到了为 windows 获取 GTK 的正常非 linux 版本。
有人好心上传了GTK文件到dropbox,下载解压即可。这是给遇到这场 GTK/msys2 灾难的任何其他人的 link。
https://www.dropbox.com/sh/8d1qbh5dsp044on/UgkALzhlqH
这些文件确实应该在 GTK Windows 下载页面上提供,这令人难以置信。
关闭此线程,万岁windows。
Welcome, Google users from the future! Since I wrote this answer, the GTK+ website now has official installation instructions that cover what I said below but with more details and less pain. Refer to that page instead. The answer below has been kept for historical reasons.
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。
我同意 GNOME 社区在这一点上有点无礼。 他们使 GTK+ 安装几乎与 Linux 安装相同,这有点像在麦当劳给你百事可乐。
最糟糕的是,它迫使你使用他们自己的废话,以至于他们甚至告诉你 IDE 选择什么,你将如何构建你的应用程序,你将拥有什么在你的应用程序中..(没有什么私人的,我实际上总是更喜欢 Linux,我只是不偏不倚)
具体来说,您明确提到了 Codeblocks。 不要使用 code::block 的 GTK+ 项目,它已经过时了。 当然,您可以修改脚本或创建自己的脚本,但它仍在继续 让你慢下来,我们程序员珍惜我们的时间(我认为)
安装(至今)GTK3 ver.的过程windows 7 上的 3.22.16 与 Code::Blocks 一起使用非常简单。 首先下载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的盘)
然后link在Codeblocks的编译器设置->搜索目录中的一些库:
#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;
}
结果如下:
几天前,我向 gtk 的一位维护者发送了一封电子邮件,寻求 vs 2017 的帮助,这是这封信。在此之后,我选择在 windows
上使用 gtk 2.0这是我的
我安装了 msys2
,我注意到,有很多 head fille
在这个文件夹下 .\msys64\mingw64\include
所以,我想知道我是否
可以直接把msys64
下的那些文件包含到vs2017
下。让 vs
2017年使用lib下folder.like这个……
这是他写的
首先,我不推荐使用 msys 版本,除非你确定
那
-您不要尝试在您的代码中使用 FILE 结构
由 GLib 等使用。
- 您正在使用的 glibconfig.h
与中的 glibcocnfig.h.win32
匹配
您正在使用的 GLib 版本的源压缩包,因为
针对 GLib 构建的所有内容都会受其影响。
如果您仍然决定走这条路,您需要指定
link 时的图书馆。参见Linker->Input->Additional Dependencies
,
您至少需要以下 .lib files
,以分号分隔:
gtk-3.0.lib (or gtk-3.lib)
gdk-3.0.lib (or 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
可能还有 fontconfig.lib
和 freetype.lib
,可能是 msys64
构建包括对它们的支持。
您还需要 link 到您可能使用的任何其他库
你的任务。在这些库前加上尾随 ;
%(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
for gtk 2.x
例如
如果您正在寻找除 Msys2 之外还提供 up-to-date、MSVC-compatible GTK3 内容的项目,您应该 check-out gvsbuild and Microsoft's vcpkg。 在引擎盖下,前者使用 python 而后者使用 cmake.