尝试在Codeblocks Win7上设置GTK + 3.0。 遇到一些麻烦find如何做到这一点。
GTK网站将您引导至msys2。 似乎有一次在GTK网站上直接下载了一个不再存在的一体化Windows软件包。
按照说明,安装并更新了msys2后,在GTK指示的已安装文件或mysys网站上,我看不到GTK +的引用。
它似乎非常linuxy在不必要的和愚蠢的不清楚做一些应该是简单的东西。 也许我错过了一些东西,但不应该像下载压缩文件夹一样简单,解压缩和设置path?
以这样的速度,id可以更快的学习C ++,并且可以使用Qt。
问题是在标题中,我很惊讶,我不得不问一个问题,似乎谷歌应该已经完全覆盖,但我所发现的一切都是关于GTK网站上不再提供的下载。 我可以find关于msys2和GTK + 3.0的信息。
提前致谢。
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。
哈利路亚,我已经找到了理智的非Linux版本的GTK获取窗口。
有人很友善地上传到Dropbox的GTK文件,只是下载和提取。 这里是碰到这个GTK / msys2灾难的其他人的链接。
https://www.dropbox.com/sh/8d1qbh5dsp044on/UgkALzhlqH
这些文件真的应该在GTK Windows下载页面上可用,这是乞丐的信念。
关闭这个线程,viva窗口。
你好在这里有一个msi的Windows版Gtk3包:(gtk-runtime-3.8.1-i686) https://sourceforge.net/projects/gtk3win/
我同意GNOME社区在这一点上有点傲慢。 他们使得GTK +的安装与Linux的安装几乎一样,这有点像在麦当劳给你百事可乐。
最糟糕的是,它迫使你使用自己的废话甚至告诉你什么样的IDE选择,你将如何建立你的应用程序,将有什么在你的应用程序..(没有个人,我会一直喜欢Linux,我只是没有偏见)
具体来说,你明确提到了Codeblocks。 不要使用code :: block的GTK + Project,这是非常过时的。 你当然可以修改脚本或者创建自己的脚本,但是它仍然会让你放慢脚步,程序员重视我们的时间(我认为)
安装过程(到今天)GTK3 ver。 用于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的编译器设置 – > Toolchain可执行文件中设置新的编译器。 新的编译器应该位于C:\msys64\mingw64
(C或安装MSYS的磁盘)
然后链接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; }
并有这样的结果:
几天前,我发送一封电子邮件给维克斯的维护者之一与2017年的帮助,这里是信。 在此之后,我选择在Windows上使用gtk 2.0
这是我的
我安装了msys2,我注意到,这个文件夹下有很多头文件。\ msys64 \ mingw64 \ include所以,我想知道是否可以直接在msys64下包含那些文件到vs 2017。 lib下的文件夹。像这样……
这是他的
首先,我不推荐使用msys版本,除非你确定 – 你不会尝试在代码中使用GLIB等使用的FILE结构。 – 您使用的glibconfig.h与glibcocnfig匹配.h.win32在你所使用的GLib版本的源代码包中,因为所有针对GLib构建的东西都会受到它的影响。
如果你仍然决定走这条路线,你需要在链接时指定库。 请参阅链接器 – >输入 – >其他依赖关系,您将至少需要下列以分号分隔的.lib文件:
gtk-3.0.lib(或者gtk-3.lib)
gdk-3.0.lib(或者gdk-3.lib)
gdk_pixbuf-2.0.lib
pangocairo-1.0.lib
攀高,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.lib和freetype.lib,因为msys64版本可能包含对它们的支持。
您还需要链接到您可能用于分配的任何其他库。 在这些库之前加上';' %(AdditionalDependencies)之前(不要删除%(AdditionalDependencies))
祝福,欢呼!
好吧…我已经花了好几天的时间把我的程序移植到windows上,经过与gtk 3.x的斗争之后,我发现你可以使用gtk 2.x来避免所有这些麻烦。 这些都是一些名为“All-in-one bundle”的旧文件,虽然知道这一点很重要,但是还有一些安全问题(再加上你需要将其重写为gtk 2.0),但是如果你主要使用linux,只是希望它在Windows上运行,我会建议你使用旧的“一体化捆绑”为GTK 2.x例如