如何设置gtk for Win 7

时间:2013-06-08 12:24:17

标签: gcc gtk go mingw mingw32

我想在windows 7 32bit上创建一个小的GUI。这就是我所做的:

要检查正确的安装,我在命令提示符下键入gcc。它返回错误消息 realgcc:无输入文件,因此似乎正确安装了gcc。然后我尝试运行gtk-demo。它也很有用

  • 我的安装已经过测试并运行良好。我已经用它开发了一个小型服务器。 GOROOT和GOPATH都设置正确。
  • 要安装go-gtk,我使用了go get github.com/mattn/go-gtk/gtk

安装完成了很多警告。

  

C:\ Users \ lhk> go get github.com/mattn/go-gtk/gtk

     

#github.com/mattn/go-gtk/glib

     

realgcc.exe:警告:' - x c'在最后一个输入文件无效后

     

realgcc.exe:没有输入文件

     

#github.com/mattn/go-gtk/gdk

     

realgcc.exe:警告:' - x c'在最后一个输入文件无效后

     

realgcc.exe:没有输入文件

     

#github.com/mattn/go-gtk/pango

     

realgcc.exe:警告:' - x c'在最后一个输入文件无效后

     

realgcc.exe:没有输入文件

C:\用户\ LHK>

为了测试go-gtk的安装,我使用了这里的示例代码:http://mattn.github.io/go-gtk/。我尝试使用go run运行此代码,但它以错误消息终止:

  

#github.com/mattn/go-gtk/glib
  realgcc.exe:警告:最后一个输入文件后的'-x c'无效   realgcc.exe:没有输入文件
  #   github.com/mattn/go-gtk/gdk
  realgcc.exe:警告:最后一次'-x c'   输入文件无效   realgcc.exe:没有输入文件
  #   github.com/mattn/go-gtk/pango
  realgcc.exe:警告:最后一次'-x c'   输入文件无效   realgcc.exe:没有输入文件
  退出状态2

我做错了什么?如何设置gtk以便正确使用?

更新

Go IRC频道上的

mb0非常有帮助,并指出了这个https://groups.google.com/forum/?fromgroups#!topic/golang-nuts/GwbkQREiTZI

go-gtk的创建者显然得到了go-gtk在win32上工作。他没有用go get。相反,他将github repo克隆到他的GOPATH上的src文件夹中,并使用mingw编译器shell调用mingw32-make。

我做了同样的事情:克隆了回购并且打电话给mingw32-make。它开始编译但失败并显示错误消息:

  

#pkg-config --cflags gtksourceview-2.0

     

在pkg-config搜索路径中找不到包gtksourceview-2.0。

     

也许您应该添加包含“gtksourceview-2.0.pc”的目录

     

到PKG_CONFIG_PATH环境变量

     

没有包“gtksourceview-2.0”找到退出状态

     

1 mingw32-make: * [all]错误2

这实际上提供了一些具体的建议。显然有一个包配置实用程序,它没有找到一个重要的包。不幸的是,我不知道如何解决这个问题。我检查了gtk网站,并在pkg-config http://www.gtk.org/api/2.6/gtk/gtk-compiling.html

上找到了这篇文章

在我看来,pkg-config负责配置包导入。因此,我对自己创建PKG_CONFIG_PATH变量犹豫不决,因为我不知道它应该指向何处。我只是尝试在我的mingw shell中运行to shell命令:pkg-config --cflags gtk+-2.0pkg-config --libs gtk+-2.0。第一个似乎显示包含路径列表,第二个只打印可用库。有pango,cairo,gobject,pixbuf和许多其他人,但绝对没有像gtksourceview那样命名的库。

我的猜测是我的机器上没有这个lib。这使我感到困惑,因为我下载并解压缩了所有应该满足所有依赖项的捆绑包。

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:2)

终于有效了。 这是一个循序渐进的指南,让gok在windows 32bit上使用go。

  • 安装Mingw和Msys
  • 从这里http://www.gtk.org/download/win32.php
  • 下载gtk all-in-one软件包
  • 将其解压缩到C:\ GTK。我听说名字很重要。就个人而言,我无法想出原因,但您可能想要将此作为可能的错误来源。
  • 将bin文件夹添加到路径中。现在你应该可以从你的shell运行gtk-demo。

gtk网站说,一体化捆绑包含gtk +堆栈和第三方依赖项。但是为了在windows上编译go-gtk,你需要安装额外的库。

您需要gtksourceview和libxml。这些可以在这里找到:http://ftp.gnome.org/pub/gnome/binaries/win32/gtksourceview/2.10/ 在这里:http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/

下载将是包含各种文件夹的压缩文件。您需要解压缩文件夹并将其复制到C:\ GTK中。 Windows将询问您是否要将它们集成到现有的中。是的你是。现在您已经下载了所有依赖项。

  • 打开Mingw shell并导航到go-gtk文件夹
  • 调用“pkg-config --cflags gtk + -2.0”
  • 调用“pkg-config --libs gtk + -2.0”
  • 致电mingw32-make

编译应该可以正常工作。如果有错误并且mingw抱怨缺少库,您应该能够像安装gtksourceview和libxml一样安装它们。

现在测试go-gtk

  • 在go src目录中创建一个新文件夹。我把它命名为“gtktest”
  • 创建一个新的.go文件。
  • 从此处复制示例代码:http://mattn.github.io/go-gtk/
  • 使用go build来创建exe

我希望这可以帮助你在Windows上使用go和gtk。

答案 1 :(得分:0)

我一直试图在GO / Windows上运行一个GUI框架,我终于按照你的指示设法完成了。

我只添加了一些内容:

  • 我将“C:\ GTK \ bin”添加到PATH,而不是“C:\ GTK”
  • 我不得不添加第三个依赖项:pthreads
  • 下载正确的依赖关系:每次在文件名中包含“dev”的文件
  • mingw-console可以在C:\ MinGW \ msys \ 1.0 \ msys.bat
  • 找到