Go编译器能否在Windows上安装?

95

我一直在 golang.org 上寻找 Windows 编译器,但我似乎找不到。 我只看到了 Linux 和 OS X 编译器。 有人知道 Go 编程是否可以在 Windows 上完成,或者这是 Google 还没有实现的功能吗?

更新:截至目前(2012年11月),golang.org 已经发布了针对 Windows 32/x86_64 的官方二进制版本。


你可以在 http://groups.google.com/group/golang-nuts 找到你的答案。 - kar
2
如果你想在Windows上尝试一些非破坏性的Go编程,可以访问http://gofmt.com/compile.html。它可以编译、链接和运行你的程序,并显示输出结果。如果你发现该网站存在任何漏洞,请私信联系我。谢谢! - Randy Sugianto 'Yuku'
更新:erGo编译器本周发布了beta测试版。开发者Russel Newquist在下面的评论中作出回答。 http://www.newquistsolutions.com/ergo - nathan
4
我投票关闭这个问题,因为golang.org网站自从第一个正式版本(1.0)发布以来就提供官方的Windows软件包。 - icza
9个回答

54

现在有适用于Windows的安装程序,请参见Windows下的Go

HelloWorld.go

package main

func main() {
    println("Hello World!");
}

使用8g编译,用8l链接,然后执行。例如:

8g HelloWorld.go
8l -o HelloWorld.exe HelloWorld.8
HelloWorld

另一个Win32版本的Go(发布于2010年8月4日):http://code.google.com/p/gomingw/downloads/list - Kolo32
很遗憾,我无法使此端口正常工作。8l链接器总是抱怨缺少runtime.a,并且在调用后不久也会崩溃。 - greatwolf
1
@维克多:我刚刚(于2010-12-11)设置好了这个,并且它可以很好地编译和链接HelloWorld、PrimeSieve和Wiki示例。这三个程序都可以运行。 - Lawrence Dol
1
Mingw端口似乎无需安装任何特殊环境即可工作(http://code.google.com/p/gomingw/downloads/list)。至少它可以编译和链接我尝试的几个示例。 - Lawrence Dol
1
感谢Jonas提供的友好和有用的回复。 - bhadra
显示剩余4条评论

23

虽然这项信息还没有被添加到Go语言的常见问题解答中,但在修改日志中可以找到:

为什么Go不能在Windows上运行? 我们知道世界上有相当一部分计算机运行的是Windows系统,如果这些计算机能够运行Go程序将是非常好的。然而,Go团队很小,我们目前没有资源进行Windows移植。我们非常愿意回答问题并向任何愿意开发Windows版本的人提供建议。


6
尽管这个回答得到了很多赞,但现在已经过时了。 - user181548

12

是的! 自2012年起,Go官网提供了官方的Windows安装程序(32位或64位)https://golang.org/dl/


7
尽管Go语言才诞生两天,但这个问题已经成为了Go邮件列表上的常见问题(遗憾的是,它还没有被添加到网站的FAQ列表中)。基本上,Go是由一小群人完成的,所以他们根本没有时间和资源去做Windows版本。这个小团队也恰好是发明Unix的人,所以Unix自然成为了他们的第一个目标。

据我所知,他们是在自己的20%时间内开发Go语言,而不是全职。 (无论如何,这就是我读到的。)无论如何,我的回答本意是非常幽默的。 - Jörg W Mittag
2
实际上,历史页面说明虽然它最初是一个业余项目,但现在至少有一些开发人员将其作为全职项目。我编辑了答案,基本上删除了关于兼职限制的评论。 - Jörg W Mittag
我会为此点赞 :) - OscarRyz
他们发明了Unix?那这是一个退休项目吗? - H H
10
他们还发明了Plan9,它是Unix的后继者;以及Inferno,Plan9的后继者;还有C语言和Limbo,一个垃圾收集系统编程语言,Inferno就是用这种语言编写的(因此,在某种意义上,它是C的后继者和Go的前身)。此外,他们还创造了Newsqueak并发编程语言(在某种意义上也是Go的前身,尤其是Goroutines)和非常并发垃圾收集器。这个垃圾收集器被用于Limbo、Inferno以及某些Standard ML实现中。还有UTF-8编码。所以,可以说在Unix和Go之间的40年里,他们一直很忙。 - Jörg W Mittag

3

目前还没有。

Go语言的作者们非常深入地研究了非Windows操作系统(有趣的是,他们中的某个人甚至创建了UNIX操作系统)。

因此,请不要指望他们会很快推出Windows版本。

该语言是开源的,因此只是时间问题(大约6-8个月),Windows实现就会推出。


2
Unix的作者在业余时间编写编译器,而“不要期望Windows端口”的说法与他们在更改日志中指出的原因(请参见mbarnett的答案)非常有趣,即他们没有资源。 - Jed Smith
2
“不关心”的另一种说法(软性)。 - ttvd
1
是的,这就像Linus亲自为Windows创建git端口一样。那是不可能的(尽管有其他人正在创建该端口)。 - OscarRyz

3

如果像我一样,使用Windows系统并想立即进行Go编程,可以在虚拟机上运行。我使用VirtualBox以无缝模式运行Ubuntu。因为我更喜欢Linux比Windows系统的很多东西,所以已经设置好了。

对我来说,使用Go进行构建和工作完全没有任何问题。我在终端中打开一个Bash运行构建并尝试我的应用程序。源目录是Windows和Linux之间的共享文件夹(VirtualBox的一个功能,但我相信VMWare也有同样的功能)。我在Windows上使用Komodo Edit编辑我的代码,并在两个操作系统上使用Mercurial管理相同的源代码。


如上所建议,我在Windows机器上安装了Ubuntu(使用VirtualBox),然后安装了Go。 - user132797

0

目前虽然没有 Windows 版本,但可以使用 Cygwin 在 Windows 平台上编译。


1
你可以在cygwin下进行大量的重构编译,但即使如此,你最后得到的是一个输出ELF而不是本地Windows二进制文件的6g/8g编译器。不过,这仍然是迈出的好的第一步。http://code.google.com/p/golang-on-cygwin/一旦构建成功,下一步就是修复编译器以生成Windows可执行代码。 - Alan S

0

-2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接