Go语言学习(一)| 环境搭建

mervyn 2018年6月18日12:20:01编程语言 GoGo语言学习(一)| 环境搭建已关闭评论8

Linux 下安装

  1. 已1.10.3 为例,下载源码包:下载地址文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

    wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

    文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

  2. 将下载的源码包解压至 /usr/local目录。文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

    tar -C /usr/local -xzvf go1.10.3.linux-amd64.tar.gz
  3. /usr/local/go/bin 加入 PHTH 环境变量。可以将下边的内容加入 /etc/profile$HOME/.profile文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

    export PATH=$PATH:/usr/local/go/bin
  4. 加入上述内容后可以手动执行命令 source /etc/profile (假设你将上述命令加入到了 /etc/profile 文件中) 使其实时生效文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

  5. 压缩包也可以解压到其他文件夹,但是如果解压到了其他文件夹必须要设置 $GOROOT , 如果将 go 安装到了自己的家目录,加入到 profile 文件的内容应该为如下内容:文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

    export GOROOT=$HOME/go1.X
    export PATH=$PATH:$GOROOT/bin

NOTE: GOROOT 只有在定义安装目录才必须要进行设置文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

相关环境变量及设置

GOROOT

GO语言安装的路径文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

GOPATH

表示代码包所在的地址,可以设置多个。文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

Go源码加载顺序

GOPATH > GOROOT文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

假设:文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

GOPATH=~/gopath1:~/gopath2

GOROOT=/usr/local/go

当我们在代码中引用了包:github.com/xxx文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

那么:GO程序在编译时会按先后次序到以下目录中寻找源码:文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

~/gopath1/src/github.com/xxx
~/gopath2/scr/github.com/xxx
/usr/local/go/src/github.com/xxx文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

如果三个目录中都没有找到这个包,就会报错。文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

要加载的包的源代码必须放在 GOPATH 路径下的 src 目录,否则还是提示加载不到包文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

Go项目目录结构

当 GOPATH=~/workspace/go 时文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

root@mervyn:~/workspace# tree
.
.
└── go
    ├── bin
    │   └── project1
    ├── pkg
    └── src
        └── project1
            ├── controllers
            └── main.go

其中文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

  • bin 目录为 go 编译可执行文件存放的的路径
  • pkg 目录为 go 编译包时,生成的 .a 文件存放路径
  • src 目录为源码路径。

GOBIN

存放执行 go install 命令后生成的二级制文件文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

go install 会生成可执行文件直接放到 GOBIN 目录下,当然这是有前提的
你编译的是可执行文件,如果是一个普通的包,会被编译生成到pkg目录下该文件是.a结尾文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

到此已完成Go 环境的的搭建工作,选择一个IDE即可可以开始进行项目开发了。文章源自Mervyn's Blog-https://mervyn.life/798e0371.html

weinxin
我的微信公众号
微信扫一扫
mervyn
Go 方法指针接收者和值接收者 编程语言

Go 方法指针接收者和值接收者

Go 语言可以给自定义的类型添加一个方法。这里的方法其实也是函数,跟函数的区别在于在 func 关键字和函数名中间增加了一个参数,可以认为该类型也作为了参数传递入了函数中,例: package mai...
Go语言学习(十一)| 通道 编程语言

Go语言学习(十一)| 通道

通道类型的值本身就是并发安全的,这也是 Go 语言自带的、唯一一个可以满足并发安全性的类型。 通道声明及初始化 通道相当于一个先进先出的队列。在声明一个通道类型变量的时候,我们首先要确定该通道类型的元...
Go语言学习(十)| module 使用 编程语言

Go语言学习(十)| module 使用

requirement go module 是在go 1.11版本才开始有的,需要将环境变量 GO111MODULE 设置为 on 才能正常使用 例: export GO111MODULE=on 初次...
Go语言学习(四)| 数组、切片、集合 编程语言

Go语言学习(四)| 数组、切片、集合

array 声明数组 array由 <type> 定义,n为array的长度,标示希望存储的内容的类型。例: var arr int //声明一个int类型的数组 arr = 42 //数...
Go语言学习(二)| 变量 编程语言

Go语言学习(二)| 变量

Go变量的类型在变量名的后面。 声明单个变量 使用语法为: var var_name type , 例: var age int var age int = 10 //声明单个变量并初始化 声明多个变...