跳转至

GO配置

安装目录清单

你的 Go 安装目录($GOROOT)的文件夹结构应该如下所示:

README.md, AUTHORS, CONTRIBUTORS, LICENSE

  • /bin:包含可执行文件,如:编译器,Go 工具
  • /doc:包含示例程序,代码工具,本地文档等
  • /lib:包含文档模版
  • /misc:包含与支持 Go 编辑器有关的配置文件以及 cgo 的示例
  • /os_arch:包含标准库的包的对象文件(.a)
  • /src:包含源代码构建脚本和标准库的包的完整源代码(Go 是一门开源语言)
  • /src/cmd:包含 Go 和 C 的编译器和命令行脚本

Go环境变量

Go 开发环境依赖于一些操作系统环境变量,你最好在安装 Go 之间就已经设置好他们。如果你使用的是 Windows 的话,你完全不用进行手动设置,Go 将被默认安装在目录 c:/go 下。这里列举几个最为重要的环境变量:

  • \(GOROOT\) 表示 Go 在你的电脑上的安装位置,它的值一般都是 \(HOME\)/go,当然,你也可以安装在别的地方。
  • \(GOARCH\) 表示目标机器的处理器架构,它的值可以是 386、amd64 或 arm。
  • \(GOOS\) 表示目标机器的操作系统,它的值可以是 darwin、freebsd、linux 或 windows。
  • \(GOBIN\) 表示编译器和链接器的安装位置,默认是 \(GOROOT\)/bin,如果你使用的是 Go 1.0.3 及以后的版本,一般情况下你可以将它的值设置为空,Go 将会使用前面提到的默认值。

目标机器是指你打算运行你的 Go 应用程序的机器。

Go 编译器支持交叉编译,也就是说你可以在一台机器上构建运行在具有不同操作系统和处理器架构上运行的应用程序,也就是说编写源代码的机器可以和目标机器有完全不同的特性(操作系统与处理器架构)。

为了区分本地机器和目标机器,你可以使用 \(GOHOSTOS\)\(GOHOSTARCH\) 设置目标机器的参数,这两个变量只有在进行交叉编译的时候才会用到,如果你不进行显示设置,他们的值会和本地机器(\(GOOS\)\(GOARCH\))一样。

  • \(GOPATH\) 默认采用和 \(GOROOT\) 一样的值,但从 Go 1.1 版本开始,你必须修改为其它路径。它可以包含多个包含 Go 语言源码文件、包文件和可执行文件的路径,而这些路径下又必须分别包含三个规定的目录:src、pkg 和bin,这三个目录分别用于存放源码文件、包文件和可执行文件。
  • \(GOARM\) 专门针对基于 arm 架构的处理器,它的值可以是 5 或 6,默认为 6。
  • \(GOMAXPROCS\) 用于设置应用程序可使用的处理器个数与核数,详见第 14.1.3 节。 在接下来的章节中,我们将会讨论如何在 Linux、Mac OS X 和 Windows 上安装 Go 语言。在 FreeBSD 上的安装和 Linux 非常类似。开发团队正在尝试将 Go 语言移植到其它例如 OpenBSD、DragonFlyBSD、NetBSD、Plan 9、Haiku 和 Solaris 操作系统上,你可以在这个页面找到最近的动态:Go Porting Efforts。

Go 开发环境的基本要求

这里有一个你可以期待你用来开发 Go 的集成开发环境有哪些特性的列表,从而替代你使用文本编辑器写代码和命令行编译与链接程序的方式。

  • 语法高亮是必不可少的功能,这也是为什么每个开发工具都提供配置文件来实现自定义配置的原因。
  • 可以自动保存代码,至少在每次编译前都会保存。
  • 可以显示代码所在的行数。
  • 拥有较好的项目文件纵览和导航能力,可以同时编辑多个源文件并设置书签,能够匹配括号,能够跳转到某个函数或类型的定义部分。
  • 完美的查找和替换功能,替换之前最好还能预览结果。
  • 可以注释或取消注释选中的一行或多行代码。
  • 当有编译错误时,双击错误提示可以跳转到发生错误的位置。
  • 跨平台,能够在 Linux、Mac OS X 和 Windwos 下工作,这样就可以专注于一个开发环境。
  • 最好是免费的,不过有些开发者还是希望能够通过支付一定金额以获得更好的开发环境。
  • 最好是开源的。
  • 能够通过插件架构来轻易扩展和替换某个功能。
  • 尽管集成开发环境本身就是非常复杂的,但一定要让人感觉操作方便。
  • 能够通过代码模版来简化编码过程从而提升编码速度。
  • 使用 Go 项目的概念来浏览和管理项目中的文件,同时还要拥有构建系统的概念,这样才能更加方便的构建、清理或运行我们建立的程序或项目。构建出的程序需要能够通过命令行或 IDE 内部的控制台运行。
  • 拥有断点、检查变量值、单步执行、逐过程执行标识库中代码的能力。
  • 能够方便的存取最近使用过的文件或项目。
  • 拥有对包、类型、变量、函数和方法的智能代码补全的功能。
  • 能够对项目或包中的代码建立抽象语法树视图(AST-view)。
  • 内置 Go 的相关工具。
  • 能够方便完整地查阅 Go 文档。
  • 能够方便地在不同的 Go 环境之间切换。
  • 能够导出不同格式的代码文件,如:PDF,HTML 或格式化后的代码。
  • 针对一些特定的项目有项目模板,如:Web 应用,App Engine 项目,从而能够更快地开始开发工作。
  • 具备代码重构的能力。
  • 集成像 hg 或 git 这样的版本控制工具。
  • 集成 Google App Engine 开发及调试的功能。