可以在Windows上安装Go编译器吗?


94

我一直在寻找golang.org上的Windows编译器,但似乎找不到它。我只能看到Linux和OS X编译器。有谁知道Go编程是否可以在Windows上完成,还是Google尚未实现的编程?

更新:看来,截至目前(2012年11月),golang.org具有Windows 32 / x86_64的官方二进制发行版。


groups.google.com/group/golang-nuts-您将在此处找到答案。
kar

2
如果您想在Windows上尝试一些非破坏性的Go编程,请使用gofmt.com/compile.html。它可以编译,链接和运行您的程序,并向您显示输出。如果您在该站点上发现任何漏洞,请给我发私人消息。谢谢!
Randy Sugianto'Yuku'09年

更新:erGo编译器已于本周发布,用于Beta测试。开发商Russel Newquist在下面的评论中回答。newquistsolutions.com/ergo
森(

4
我投票关闭此问题为离题,因为golang.org网站提供了自第一个正式(1.0)版本以来的正式Windows程序包。
icza 2015年

Answers:


54

现在有适用于Windows的安装程序,请参阅Windows下的转到

HelloWorld.go

package main

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

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

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

Go的另一个Win32版本(发布于2010-08-04):code.google.com/p/gomingw/downloads/list
Kolo32

不幸的是,我无法使该端口正常工作。8l链接器总是抱怨runtime.a丢失,并且在调用后不久也会崩溃。
greatwolf 2010年

1
@Victor:我刚刚进行了设置(2010年12月11日),它可以很好地编译和链接HelloWorld,PrimeSieve和Wiki示例。所有这三个程序都运行。
劳伦斯·多尔

1
mingw端口似乎可以运行,而无需安装任何特殊环境(code.google.com/p/gomingw/downloads/list)。至少它编译并链接了我尝试过的几个示例。
劳伦斯·多尔

1
感谢乔纳斯(Jonas)的出色而有用的回复。
bhadra 2011年

23

它尚未进入Go Lang常见问题解答,但来自changelog

为什么Go无法在Windows上运行?我们了解到,世界上有相当一部分计算机运行Windows,如果这些计算机可以运行Go程序,那就太好了。但是,Go团队很小,并且我们目前没有资源进行Windows端口。我们非常愿意回答问题,并为愿意开发Windows版本的任何人提供建议。


5
尽管这个答案被强烈反对,但现在已经过时了。


7

尽管Go只有两天了,但这个问题已经成为Go邮件列表中的常见问题。(不幸的是,它尚未被添加到网站的常见问题列表中。)

基本上,Go是由一小组人完成的,因此他们根本没有时间或资源来做Windows端口。很少有人也正是发明Unix的人,所以这自然是第一个目标。


AFAIK,他们在20%的时间内(而非全职)开发Go。(无论如何,这就是我读到的。)无论如何,我的回答是说非常大的舌头,很深。
约尔格W¯¯米塔格

2
实际上,历史记录页面指出,尽管它最初是作为一个业余项目开始的,但现在对于至少某些开发人员来说是一个全职项目。我编辑了答案,基本上删除了关于兼职限制的评论。
约尔格W¯¯米塔格

我为此表示支持:)
OscarRyz

他们发明了Unix吗?这是一个退休项目吗?
Henk Holterman

10
嗯,他们还发明了Unix的后继者Plan9。以及Inferno,Plan9的后继者。还有C.和Limbo,这是Inferno编写的垃圾收集系统编程语言。(因此,从某种意义上说,是C的后继者,而Go的前身。)还有Newsqueak并发编程语言(在某种意义上,也是Go的前身,以及在Limbo,Inferno以及Standard ML的某些实现中使用的非常并发垃圾收集器。和UTF-8。因此,这并不是说在Unix和Go之间的40年中他们并没有忙碌。
约尔格W¯¯米塔格

3

因此,如果像我一样,您很多时候都在Windows上并且想要立即进行Go编程,则可以在VM上进行。我使用VirtualBox以无缝模式运行Ubuntu。我已经设置好它了,因为在很多方面我比Windows更喜欢Linux。

对Go而言,构建和使用它对我来说完全是一件轻松的事。我在终端中打开了一个Bash来运行我的构建并尝试我的应用。源目录是Windows和Linux之间的共享文件夹(VirtualBox功能,但我确定VMWare具有相同的功能)。我在Windows的Komodo Edit中编辑我的代码,并在两个OS上将Mercurial用作相同的源代码。


如上面的建议,我在Windows机器(带有virtualbox)上安装了ubuntu,然后开始使用。
user132797 2010年

3

还没。

Go的作者扎根于非Windows操作系统(Trivia:谁创造了不少于UNIX操作系统)

因此,不要指望很快就会有Windows端口。

该语言是开源的,因此Windows实现可用只是时间问题(从6到8个ehrm月)。


2
Unix作者在业余时间编写编译器与“不要指望Windows端口”之间的联系很有趣,因为他们在changelog中指出(请参阅mbarnett的回答)这仅仅是因为他们没有资源。
杰德·史密斯

2
只是另一个(软)措辞,表示“不在乎”。
2009年

1
是的,就像Linus为Windows自己创建git端口一样。这将永远不会发生(尽管端口是由其他人创建的)
OscarRyz

0

尽管目前没有Windows版本,但可以在Windows平台上使用Cygwin对其进行编译。


1
您可以在带有大量返工的cygwin下进行编译,但是即使那样,您最终还是会得到一个6g / 8g编译器,该编译器输出ELF,而不是本机Windows二进制文件。但是,这仍然是很好的第一步。 code.google.com/p/golang-on-cygwin 一旦构建成功,下一步将是修复编译器以生成Windows可执行代码。
艾伦S


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.