构建环境

Table of Contents

1 安装 Go 工具

2020-01-17 11:04:18 Fri

基于 Go 1.13 更新,https://golang.org/doc/install

1.1 Linux, macOS, and FreeBSD tarballs

wget https://dl.google.com/go/go1.13.6.darwin-amd64.tar.gz --no-check-certificate
sudo tar -C /usr/local -xzf go1.13.6.darwin-amd64.tar.gz

/usr/local/go/bin 添加到系统 PATH 环境变量,在 /etc/profile 或者 $HOME/.profile 中添加

export PATH=$PATH:/usr/local/go/bin

1.2 检测是否安装成功

默认的工作目录是 $HOME/go ,如果是不同的目录需要 设置一下 GOPATH 环境变量

在工作目录下创建 src/hello 目录,然后创建 hello.go

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

go run hello.go 看到 hello, world 表示安装成功。

注意 如果存在旧版本的 Go 需要先卸载才行。

2 卸载

  1. 删除 /usr/local/go 目录
  2. 编辑 /etc/profile 或者 $HOME/profile 移除 PATH 环境变量中的 go bin 路径
  3. 删除工作目录

3 插件和 IDE

我使用 Emacs 写 Go 代码:

  • go-mode 是 go 的 mirror mode,语法高亮和一些简单的 IDE 功能,依赖 go-guru,go-rename
  • emacs-lsp/lsp-modeLSP 的 Emacs 实现。只是一个客户端,server 用的是 gopls,还依赖 goimports

安装:

go get -u -v golang.org/x/tools/cmd/guru
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v golang.org/x/tools/gopls
go get -u -v golang.org/x/tools/cmd/goimports

部分工具需要 FQ 才能安装。

Emacs 配置见:https://github.com/zhangjie2012/_emacs.d/blob/master/lisp/init-lsp.el

4 跨平台编译

1.5 版本之后,Go 支持跨平台编译(碉堡的一个功能),在编译之前指定 $GOOS$GOARCH 两个环境变量即可。这两个环境变量分别表示的目标的操作系统和编译体系架构的名称。常用的值:

  • GOOS: android darwin freebsd linux windows
  • GOARCH: arm amd64 386

完整的可选值在 Optional environment variables

比如在 MacOS 上编译 CentOS7 下的二进制包: GOOS=linux GOARCH=amd64 go build main

相关的 Stackoverflow 帖子:All possible GOOS value? 中说明在 Go 1.7 之后,可以使用 go tool dist list -json 来显示可选的值(不加 -json 参数将显示为文本)。

Date: 2017-12-07 09:41:24

Author: JerryZhang