Go语言中GOROOT、GOPATH、GOBIN详解


本文摘自php中文网,作者尚,侵删。

Go语言是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性.

go命令依赖一个重要的环境变量:$GOPATH
GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows是分号;

当有多个GOPATH时默认将go get获取的包存放在第一个目录下

$GOPATH目录约定有三个子目录

1、src存放源代码(比如:.go .c .h .s等) 按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。

2、pkg编译时生成的中间文件(比如:.a)  golang编译包时

3、bin编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目录)

代码目录结构规划

GOPATH下的src目录就是接下来开发程序的主要目录,所有的源码都是放在这个目录下面,那么一般我们的做法就是一个目录一个项目,

例如: $GOPATH/src/mymath 表示mymath这个应用包或者可执行应用,这个根据package是main还是其他来决定,main的话就是可执行应用,其他的话就是应用包,这个会在后续详细介绍package。

首先看下我的go环境:go env

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

C:\Users\Administrator>go env

set GOARCH=amd64

set GOBIN=

set GOEXE=.exe

set GOHOSTARCH=amd64

set GOHOSTOS=windows

set GOOS=windows

set GOPATH=D:\project

set GORACE=

set GOROOT=D:\BaiduNetdiskDownload\go

set GOTOOLDIR=D:\BaiduNetdiskDownload\go\pkg\tool\windows_amd64

set GCCGO=gccgo

set CC=gcc

set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0

set CXX=g++

set CGO_ENABLED=1

set CGO_CFLAGS=-g -O2

set CGO_CPPFLAGS=

set CGO_CXXFLAGS=-g -O2

set CGO_FFLAGS=-g -O2

set CGO_LDFLAGS=-g -O2

set PKG_CONFIG=pkg-config

GOROOT

其实就是golang 的安装路径
当你安装好golang之后其实这个就已经有了

GOBIN

首先看一下结构:

2.jpg

我们通常是在project目录下执行go build,例如:

1

2

D:\project\src\go_dev\day1\package_example\main>go run main.go

400 100

现在需要编译main.go,golang 会自动去src下找hello目录,因为我的main.go中代码的开通导入了packag main包,所以可以编译成可执行文件,但是这样默认在当前目录下生成可执行文件,虽然可以指定目录,但是还是感觉不是非常方便

1

d:\project>go build go_dev/day1/package_example\main

所以还有两个非常好用的命令:go get 和go install

go get

go get会做两件事:

1、从远程下载需要用到的包

2、执行go install

go install

go install 会生成可执行文件直接放到bin目录下,当然这是有前提的

阅读剩余部分

相关阅读 >>

一周 Go world 新鲜事

零基础小白学Golang语言还是java语言?

以下两个函数执行结果一样嘛? 为什么

Golang 上传office文档并转化为pdf

Golang 协程(Goroutine) 运行过程 与 并发

Go 为什么这么“快”

Go - 统一定义 api 错误码

chan(rutime. hchan)结构

Gocn酷Go推荐】Go 类型转换神器 cast库

手撸Golang 基本数据结构与算法 数组

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...