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

Posted

技术标签:

【中文标题】Go 编译器可以安装在 Windows 上吗?【英文标题】:Can Go compiler be installed on Windows? 【发布时间】:2010-12-15 14:47:13 【问题描述】:

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

更新:截至目前(2012 年 11 月)golang.org 似乎有适用于 windows 32/x86_64 的官方二进制版本。

【问题讨论】:

groups.google.com/group/golang-nuts - 你会在那里找到答案。 gofmt.com/compile.html 如果你想在 Windows 上尝试一些非破坏性的 Go 编程。它可以编译、链接和运行您的程序并显示输出。如果您在该网站上发现任何漏洞,请给我发私信。谢谢! 更新:erGo 编译器已于本周发布以进行 beta 测试。开发商 Russel Newquist 在下面的 cmets 中回答了。 newquistsolutions.com/ergo 我投票决定将此问题作为离题结束,因为golang.org 网站自第一个官方 (1.0) 版本以来就提供官方 Windows 软件包。 【参考方案1】:

现在有适用于 Windows 的安装程序,请参阅 Go under 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 不幸的是,我无法让这个端口正常工作。 8l 链接器总是抱怨 runtime.a 丢失,并且在调用后不久它也会崩溃。 @Victor:我刚刚设置了这个(在 2010 年 12 月 11 日),它可以很好地编译和链接 HelloWorld、PrimeSieve 和 Wiki 示例。三个程序都运行了。 mingw 端口似乎无需安装任何特殊环境即可工作 (code.google.com/p/gomingw/downloads/list)。至少它编译并链接了我尝试过的几个示例。 感谢 Jonas 的友好和有用的回复。【参考方案2】:

它尚未出现在 Go Lang 常见问题解答中,但来自 the changelog:

为什么 Go 不能在 Windows 上运行? 我们知道世界上很大一部分计算机 运行 Windows,如果这些计算机可以运行 Go,那就太好了 程式。但是,Go 团队很小,我们没有 目前做 Windows 移植的资源。我们将 非常愿意回答问题并向任何人提供建议 愿意开发一个Windows版本。

【讨论】:

虽然这个答案得到了高度评​​价,但它现在已经过时了。【参考方案3】:

是的!截至 2012 年,Go 主页提供官方 Windows 安装程序(32 位或 64 位)https://golang.org/dl/

【讨论】:

【参考方案4】:

尽管 Go 才刚刚推出两天,但这个问题已经成为 Go 邮件列表上的常见问题解答。 (很遗憾,它还没有被添加到网站的常见问题列表中。)

基本上,Go 是由一小部分人完成的,所以他们根本没有时间和资源来做 Windows 移植。那一小群人也恰好是 Unix 的发明者,所以这是自然而然的第一个目标。

【讨论】:

AFAIK,他们在 20% 的时间里开发 Go,而不是全部时间。 (无论如何,这就是我读到的内容。)无论如何,我的回答本来就是非常大舌头非常深刻的。 实际上,历史页面指出,虽然它最初是一个业余项目,但现在至少对一些开发人员来说是一个全职项目。我编辑了答案,基本上删除了关于兼职限制的评论。 我赞成你:) 他们发明了 Unix?所以这是一个退休项目? 嗯,他们还发明了Plan9,Unix的继任者。还有 Inferno,Plan9 的继任者。还有 C。还有 Limbo,这是编写 Inferno 的垃圾收集系统编程语言。(因此,在某种意义上,它是 C 的继任者和 Go 的前身。)还有 Newsqueak 并发编程语言(在某种意义上也是 Go 的前身,尤其是 Goroutines。)以及在 Limbo、Inferno 以及标准 ML 的某些实现中使用的非常并发垃圾收集器。和 UTF-8。所以,在 Unix 和 Go 之间的 40 年里,他们并非没有一直忙碌。【参考方案5】:

因此,如果您像我一样经常使用 Windows,并且现在想进行一些 Go 编程,您可以在 VM 上进行。我使用以无缝模式运行 Ubuntu 的 VirtualBox。我已经设置好了,因为在很多事情上我比 Windows 更喜欢 Linux。

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

【讨论】:

如上所述,我在 windows 机器上安装了 ubuntu(带有 virtualbox)然后就开始了。【参考方案6】:

还没有。

Go 的作者在非 Windows 操作系统上有着非常深厚的根基(琐事:他们中的谁创造了不亚于 UNIX 操作系统)

所以,不要指望他们很快就会有 Windows 端口。

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

【讨论】:

您在业余时间编写编译器的 Unix 作者与“不要指望 Windows 端口”之间的联系很有趣,因为他们在更改日志中指出(请参阅 mbarnett 的回答)只是因为他们没有资源。 “不关心”的另一个(软)措辞。 是的,就像 Linus 自己为 Windows 创建一个 git 端口。这永远不会发生(虽然端口是由其他人创建的)【参考方案7】:

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

【讨论】:

您可以在 cygwin 下编译它并进行大量返工,但即便如此,您最终还是会得到一个输出 ELF 的 6g/8g 编译器,而不是本机 Windows 二进制文件。然而,这仍然是一个很好的第一步。 code.google.com/p/golang-on-cygwin 构建成功后,下一步将修复编译器以生成 Windows 可执行代码。【参考方案8】:

将 Go 移植到 windows 的各种努力正在进行中。

最先进的已经可以构建和运行一些代码的代码在这里:http://code.google.com/r/hectorchu-go-windows/

【讨论】:

【参考方案9】:

如果您使用experimental x32 windows port,则在 Windows 上安装 Go 非常简单。 Go installation on windows 的步骤文档可以找到 here

您可能还需要 MinGW 工具(bash、make、gcc 等...): http://sourceforge.net/projects/mingw/files/

以及 GTK+ 文件和工具(“一体式捆绑包”包括 pkg-config): http://www.gtk.org/download/win32.php

【讨论】:

以上是关于Go 编译器可以安装在 Windows 上吗?的主要内容,如果未能解决你的问题,请参考以下文章

Windows下Go安装&环境配置&编译运行

在 Windows 中编译 Github 中的 GO 项目

Go工程化 - Protobuf 编译工具的安装

Go语言学习,Windows下安装配置Go语言的配置环境

go 工具链目前[不支持编译 windows 下的动态链接库]解决方案

Golang开发环境搭建