44.笔记go语言圣经——go平台与架构
Go 语言开发团队开发了适用于以下操作系统的编译器:
l Linux
l FreeBSD
l Mac OS X(也称为 Darwin)
目前有2个版本的编译器:Go原生编译器 gc 和非原生编译器 gccgo,这两款编译器都是在类 Unix系统下工作。其中,gc版本的编译器已经被移植到 Windows平台上,并集成在主要发行版中,你也可以通过安装 MinGW从而在 Windows平台下使用 gcc 编译器。
Go 原生编译器 gc:
主要基于 Ken Thompson 先前在 Plan 9 操作系统上使用的 C 工具链。
Go 语言的编译器和链接器都是使用 C 语言编写并产生本地代码,Go不存在自我引导之类的功能。因此如果使用一个有不同指令集的编译器来构建 Go 程序,就需要针对操作系统和处理器架构(32 位操作系统或 64 位操作系统)进行区别对待。
gccgo 编译器:
一款相对于 gc 而言更加传统的编译器,使用 GCC 作为后端。GCC 是一款非常流行的 GNU 编译器,它能够构建基于众多处理器架构的应用程序。编译速度相对 gc 较慢,但产生的本地代码运行要稍微快一点。它同时也提供一些与 C 语言之间的互操作性。
文件扩展名与包(package):
Go 语言源文件的扩展名很显然就是 .go。
C 文件使用后缀名 .c,汇编文件使用后缀名 .s。所有的源代码文件都是通过包(packages)来组织。包含可执行代码的包文件在被压缩后使用扩展名 .a(AR 文档)。
Go 语言的标准库包文件在被安装后就是使用这种格式的文件。
注意 当你在创建目录时,文件夹名称永远不应该包含空格,而应该使用下划线 "_" 或者其它一般符号代替。