Gcc 如何为go on Win 7设置gtk

Gcc 如何为go on Win 7设置gtk,gcc,gtk,go,mingw,mingw32,Gcc,Gtk,Go,Mingw,Mingw32,我想用32位windows 7创建一个小型GUI。这就是我所做的: 我安装了MinGw 我从这里下载了gtk+一体机包:并将其添加到我的PATH变量中 为了检查安装是否正确,我在命令提示符下键入了gcc。它返回了错误消息realccc:no-input file,因此似乎gcc安装正确。然后我尝试运行gtk演示。它也起作用了 我的go安装经过测试,运行良好。我已经用它开发了一个小型服务器。GOROOT和GOPATH都设置正确 为了安装go gtk,我使用了go-get-github.com

我想用32位windows 7创建一个小型GUI。这就是我所做的:

  • 我安装了MinGw
  • 我从这里下载了gtk+一体机包:并将其添加到我的PATH变量中
为了检查安装是否正确,我在命令提示符下键入了
gcc
。它返回了错误消息realccc:no-input file,因此似乎gcc安装正确。然后我尝试运行
gtk演示
。它也起作用了

  • 我的go安装经过测试,运行良好。我已经用它开发了一个小型服务器。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:\Users\lhk>

为了测试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

更新

Go IRC频道上的mb0非常有用,并向我指出了这一点

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

我做了完全相同的事情:克隆了回购协议,并称之为mingw32 make。它开始编译,但失败并显示错误消息:

#打包配置——cflags gtksourceview-2.0

在pkg配置搜索路径中未找到包gtksourceview-2.0

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

到PKG_CONFIG_PATH环境变量

未找到包“gtksourceview-2.0”的退出状态

1 mingw32 make:[all]错误2

这实际上给出了一些具体的建议。显然,有一个包配置实用程序,它没有找到一个重要的包。不幸的是,我不知道如何解决这个问题。我查看了gtk网站,在pkg config上找到了这篇文章

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

我猜我的机器上没有这个库。这让我很困惑,因为我下载并解压了应该满足所有依赖关系的all-in-one捆绑包

我能做些什么来解决这个问题?

它终于起作用了。 下面是一个逐步指导,让gtk在windows 32位上使用go

  • 安装Mingw和Msys
  • 从这里下载gtk多功能捆绑包
  • 将其解压缩到C:\GTK。我听说这个名字很重要。就我个人而言,我想不出原因,但您可能希望记住这是一个可能的错误源
  • 将bin文件夹添加到您的路径。现在,您应该能够从shell运行gtk演示
gtk网站表示,一体化捆绑包包含gtk+堆栈和第三方依赖项。但是为了在windows上编译go gtk,您需要安装额外的库

您需要gtksourceview和libxml。可在此处找到这些信息: 在这里:

下载将是一个包含各种文件夹的压缩文件。您需要解压缩文件夹并将其复制到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文件
  • 从此处复制示例代码:
  • 使用go build创建一个exe

我希望这有助于您在windows上使用go和gtk。

我一直在尝试在go/windows上运行GUI框架,最后我按照您的指示完成了这项工作

我只想补充几点:

  • 我在路径中添加了“C:\GTK\bin”,而不是“C:\GTK”
  • 我必须添加第三个依赖项:pthreads
  • 要下载正确的依赖项:每次下载文件时