下载安装
从 https://golang.org/dl/ 下载最新的安装包。
- windows直接执行exe,按指示进行安装(默认安装目录是:C:Go)
- linxu解压后复制到你喜欢目录就行(一般放在:/usr/local/go)
配置环境变量
首先,应在全局环境变量里增加:GOROOT
,指定golang
的安装位置。并将安装目录下的bin
添加到PATH
中,其中将bin
添加到PATH
是为了能够在其他目录直接使用go
命令:
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
应该在用户的配置中,添加GOPATH
指定项目目录(假设项目在/home/goProject
)。项目目录中应包含bin
、src
、pkg
三个目录。
并同时设置GOBIN
,以及将GOAPATH
下的bin
也加入PATH
中。GOBIN
将指定你通过go install
安装的包的路径(其默认是第一个GOPATH
的bin
目录),而将GOAPATH
下的bin
也加入PATH
中,是为了能够方便地使用安装好的各种工具。
export GOPATH=/home/goProject
export PATH=$PATH:$GOPATH/bin
但需要注意的是,GOROOT
和GOPATH
不能是同一个目录。
安装第三方包
在线安装
使用go get
命令指定第三方包的全路径即可安装。但此命令依赖git
,需要你先安装git
客户端才能使用。
go get -u github.com/jinzhu/gorm
更详细的操作可以通过 go help get
命令看到。
离线安装
golang
的包都通过git
直接发布源码,所以我们可以直接下载源码通过go install
安装。此举能解决大部分因网络原因,无法使用go get
安装的情况。
如gorm
,其安装命令为:
go get -u github.com/jinzhu/gorm
我们可以直接在 https://github.com/jinzhu/gorm找到其项目。
然后下载它。当然可以通过各种手段下载。
我们需要在我们设置的第一个GOPATH
目录中的src
目录下建立github.com/jinzhu/gorm
目录,目录结构与安装命令中的全路径相同。把下载好的源码,解压到这个目录里即可。
如果,安装的库还提供命令行命令操作,那么可以直接进源码目录执行:
go install
即可完成编译安装等操作。
交叉编译
编译操作需要执行:
go build xxx.go
环境变量设置
交叉编译则需先设置环境变量,主要设置下述三个
- CGO_ENABLED
- GOOS
- GOARCH
其中CGO_ENABLED
表示启用cgo
,我尝试的过程中,交叉编译不支持cgo
,所以要将CGO_ENABLED
设置为0
。
GOOS
表示目标操作系统,可取下述值:
- windows
- darwin
- linux
- freebsd
GOARCH
表示目标平台,可取下述值:
- amd64
- 386
- arm
示例
在windows平台进行编译,目标系统为linux,目标平台是x64:
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
在linxu平台进行编译,目标系统为windows,目标平台是x86:
export CGO_ENABLED=0
export GOOS=windows
export GOARCH=386
go build main.go
其他平台、系统,自行替换其中环境变量的值即可。
IDE配置
我使用的编辑工具是vscode,安装go语言插件后,可以实现自动代码格式化,自动进行静态代码检查。
在安装go插件的过程中,会有几个包因为各种原因安装不上。此时我们实用go get
命令是无论如何也搞不定的。我么可以选择直接通过源码安装。
实际上,golang的github库中,已经放好了golang开发所需的包,在https://github.com/golang/tools。我们使用git clone
将此项目clone到$GOPATH/src/golang.org/x/tools/
目录下,然后我们缺什么包,就直接进入其目录执行go install
,就能直接安装上。
示例
在gocode
包安装的时候,需要gcexportdata
,我们就可以tools/go/gcexportdata
目录下直接执行go install
安装它。