mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-11 23:08:34 +08:00
02.1.md
This commit is contained in:
@@ -7,7 +7,7 @@ Go 语言开发团队开发了适用于以下操作系统的编译器:
|
|||||||
- FreeBSD
|
- FreeBSD
|
||||||
- Mac OS X(或者 Darwin)
|
- Mac OS X(或者 Darwin)
|
||||||
|
|
||||||
这里有2个版本的编译:Go 原生编译器 gc 和非原生编译器 gccgo,这两款编译器都是在类 Unix 系统下工作 。其中,gc 版本的编译器已经被移植到 Windows 平台上,并集成在主要发行版中。这两个编译器都是以单通道的形式工作。
|
目前有2个版本的编译器:Go 原生编译器 gc 和非原生编译器 gccgo,这两款编译器都是在类 Unix 系统下工作 。其中,gc 版本的编译器已经被移植到 Windows 平台上,并集成在主要发行版中,你也可以通过安装 MinGW 从而在 Windows 平台下使用 gcc 编译器。这两个编译器都是以单通道的形式工作。
|
||||||
|
|
||||||
你可以获取以下平台上的 Go 1.1 源码和二进制文件:
|
你可以获取以下平台上的 Go 1.1 源码和二进制文件:
|
||||||
|
|
||||||
@@ -16,11 +16,11 @@ Go 语言开发团队开发了适用于以下操作系统的编译器:
|
|||||||
- Mac OS X(Snow Leopard + Lion):amd64 和 386 架构
|
- Mac OS X(Snow Leopard + Lion):amd64 和 386 架构
|
||||||
- Windows 2000+:amd64 和 386 架构
|
- Windows 2000+:amd64 和 386 架构
|
||||||
|
|
||||||
对于非常底层的纯 Go 语言代码或者包而言,在各个操作系统平台上的可移植性是非常强的,只需要将源码拷贝到相应平台上进行编译即可,或者可以使用交叉编译来构建目标平台的应用程序(第2.2节)。但如果你打算只用 cgo 或者类似文件监控系统的软件,就需要根据实际情况进行相应地修改了。
|
对于非常底层的纯 Go 语言代码或者包而言,在各个操作系统平台上的可移植性是非常强的,只需要将源码拷贝到相应平台上进行编译即可,或者可以使用交叉编译来构建目标平台的应用程序(第2.2节)。但如果你打算使用 cgo 或者类似文件监控系统的软件,就需要根据实际情况进行相应地修改了。
|
||||||
|
|
||||||
1. Go 原生编译器 gc:
|
1. Go 原生编译器 gc:
|
||||||
|
|
||||||
主要基于 Ken Thompson 先前在 Plan 9 操作系统上使用 C 工具链。
|
主要基于 Ken Thompson 先前在 Plan 9 操作系统上使用的 C 工具链。
|
||||||
|
|
||||||
Go 语言的编译器和链接器都是使用 C 语言编写并产生本地代码,Go 不存在自我引导之类的功能。因此如果使用一个有不同指令集的编译器来构建 Go 程序,就需要针对操作系统和处理器架构(32 位操作系统或 64 位操作系统)进行区别对待。
|
Go 语言的编译器和链接器都是使用 C 语言编写并产生本地代码,Go 不存在自我引导之类的功能。因此如果使用一个有不同指令集的编译器来构建 Go 程序,就需要针对操作系统和处理器架构(32 位操作系统或 64 位操作系统)进行区别对待。
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ Go 语言开发团队开发了适用于以下操作系统的编译器:
|
|||||||
|
|
||||||
从 Go 1.0.3 版本开始,不再使用 8g,8l 之类的指令进行程序的构建,取而代之的是统一的 `go build` 和 `go install` 等命令,而这些指令会自动调用相关的编译器或链接器。
|
从 Go 1.0.3 版本开始,不再使用 8g,8l 之类的指令进行程序的构建,取而代之的是统一的 `go build` 和 `go install` 等命令,而这些指令会自动调用相关的编译器或链接器。
|
||||||
|
|
||||||
更深层次的信息:你可以在目录 `$GOROOT/src/cmd` 下找到编译器和链接器的源代码。Go 语言本身是由 C 语言开发的,而不是 Go 语言。词法分析程序是 GNU bison,语法分析程序是名为 `$GOROOT/src/cmd/gc/go.y` 的 yacc 文件,它会在同一目录输出 `y.tab.{c,h}` 文件。如果你想知道更多有关构建过程的信息,你可以查看相同目录下的 Makefile 文件,另一个构建过程的概述可以在 `$GOROOT/src/make.bash` 中找到。
|
如果你想获得更深层次的信息,你可以在目录 `$GOROOT/src/cmd` 下找到编译器和链接器的源代码。Go 语言本身是由 C 语言开发的,而不是 Go 语言。词法分析程序是 GNU bison,语法分析程序是名为 `$GOROOT/src/cmd/gc/go.y` 的 yacc 文件,它会在同一目录输出 `y.tab.{c,h}` 文件。如果你想知道更多有关构建过程的信息,你可以查看相同目录下的 Makefile 文件,另一个版本的构建过程的概述可以在 `$GOROOT/src/make.bash` 中找到。
|
||||||
|
|
||||||
大部分的目录都包含了名为 `doc.go` 的文件,这个文件提供了更多详细的信息。
|
大部分的目录都包含了名为 `doc.go` 的文件,这个文件提供了更多详细的信息。
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user