首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Go | 讲解GOROOT、GOPATH、GOBIN

特色: 简洁、快速、安全 并行、有趣、开源 内存管理、数组安全、编译迅速 GOROOT 其实就是golang 的安装路径 当你安装好golang之后其实这个就已经有了 GOPATH go...命令依赖一个重要的环境变量:GOPATH GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows是分号; 当有多个GOPATH时默认将go get获取的包存放在第一个目录下...为空时则遵循“约定优于配置”原则,可执行文件放在各自GOPATH目录的bin文件夹中(前提是:package main的main函数文件不能直接放到GOPATH的src下面。...GOPATH目录约定有三个子目录 src:存放源代码(比如:.go .c .h .s等) 按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令...pkg:编译时生成的中间文件(比如:.a)  golang编译包时 bin:编译后生成的可执行文件(为了方便,可以把此目录加入到 PATH 变量中,如果有多个gopath,那么使用{GOPATH/

47520
您找到你想要的搜索结果了吗?
是的
没有找到

简单聊聊 GOPATH 与 Go Modules

什么是GOPATH 胖虎:那 GOPATH 呢? 实习生:GOPATH 是Golang 1.5版本之前一个重要的环境变量配置,是存放 Golang 项目代码的文件路径。...如何查看 GOPATH 路径 实习生:在命令控制台输入 go env GOPATH 或者输入: go env | grep GOPATH 进入GOPATH目录,查看该目录下的所有文件。...模式下,我们需要将应用代码存放在固定的GOPATH/src目录下,并且如果执行go get来拉取外部依赖会自动下载并安装到GOPATH目录下。...简单来说,GOPATH模式下,项目代码不能想放哪里就放哪里,哪怕你的学习资料盘满了也不行。 GOPATH 缺点 胖虎:除了需要指定目录,还有哪些缺点吗?...•go get 命令的时候,无法指定获取的版本•引用第三方项目的时候,无法处理v1、v2、v3等不同版本的引用问题,因为在GOPATH 模式下项目路径都是 github.com/foo/project•

73020

浅谈GoPath和Go Modules包管理

1、概述 2、GOPATH介绍 2.1 GOPATH目录 2.2 GOPATH的缺点 3、GO Module介绍 3.1 设定GO111MODULE环境变量 3.2 初始化mod 3.3 go...介绍 2.1 GOPATH目录 GOPATH是什么,输入如下命令查看 # go env GOPATH GOPATH="/Users/ssgeek/go" 进入到该目录下,目录结构如下 # cd `go...三个目录中存放的文件说明如下 bin //用来存放编译后的可执行文件 pkg //用于存放编译后生成的归档文件 src //用来存放go源码文件 2.2 GOPATH的缺点 在使用GOPATH的模式下,...我们需要将应用代码存放在固定的GOPATH/src目录下,并且如果执行go get来拉取外部依赖会自动下载并安装到GOPATH目录下 第三方套件只要不是官方库,都需要放置在GOPATH/src的路径下才可以使用...需要满足两种情形: 该目录不在GOPATH/src/下 当前或上一层目录存在go.mod文件 on go命令会使用modules,而不会去GOPATH目录下查找。

1.1K30

Go语言之讲解GOROOT、GOPATH、GOBIN

Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. go命令依赖一个重要的环境变量:$GOPATH GOPATH允许多个目录,...当有多个目录时,请注意分隔符,多个目录的时候Windows是分号; 当有多个GOPATH时默认将go get获取的包存放在第一个目录下  $GOPATH目录约定有三个子目录 src存放源代码(比如:.go...pkg编译时生成的中间文件(比如:.a)  golang编译包时 bin编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,如果有多个gopath,那么使用${GOPATH//:/.../bin:}/bin添加所有的bin目录) 代码目录结构规划 GOPATH下的src目录就是接下来开发程序的主要目录,所有的源码都是放在这个目录下面,那么一般我们的做法就是一个目录一个项目, 例如: $...GOPATH/src/mymath 表示mymath这个应用包或者可执行应用,这个根据package是main还是其他来决定,main的话就是可执行应用,其他的话就是应用包,这个会在后续详细介绍package

3K20

GoPath模式和GoMoudle模式的相爱相杀

go moudle的前世今生 前世-gopath gopath是什么 GOPATH 是什么,相信已经不用我再多说什么了。大家深受摧残多年,应该已经有所体会。...在v.1.11版本之前,安装GO肯定要在环境变量中配置GoPath,我们可以简单的将其理解成是工作目录。.../src 目录下进行管理的方式,我们称之为 GOPATH 模式。...gopath有什么样的问题? 版本管理问题 GOPATH 根本没有版本的概念,如果你所应用的库需要升级,那就是全局升级,所以涉及这个库的服务在下一次编译中都会使用新的库,这是一件很危险的事情。...但是如果公司的项目还有不少就是基于gopath方式的,那你也不要着急,gopath的旧项目也是支持切换成go mod模式的,方式也很简单,大家动动小手,一百度就可以。

58870

Golang 语言 vendor 在 GOPATH 和 Modules 中的区别

本文我们介绍 Golang 构建模式主要演进的三个阶段,分别是 GOPATH、 引入 vendor 机制的 GOPATH 和 Go Module。...02 GOPATH Golang 初期版本中就原生内置了 GOPATH 的构建模式,Golang 程序在编译时,Golang 编译器会在 GOPATH 环境变量配置的本地路径下,查找 Golang 程序依赖的三方包...构建模式,如果将 Go Module 构建模式设置为「自动」,而 Golang 项目在 GOPATH 环境变量配置的目录中的 src 目录下,go build 命令优先使用 GOPATH 构建模式。...在 Golang v1.16 版本开始,Golang 已经默认开启 Go Module 构建模式,未来 Golang 官方还会考虑彻底移除 GOPATH 构建模式,我建议读者朋友们现在开始将 GOPATH...05 总结 本文我们介绍了 Golang 的构建模式的演进过程,Golang 官方先后推出三种构建模式,分别是 GOPATH 构建模式,引入 vendor 机制的 GOPATH 构建模式和 Go Module

1.6K20

学习Go语言-工作区和GOPATH的注意事项

] 接下来说一下 安装之后的设置: 大体我们需要设置3个环境变量,即GOROOT、GOPATH和GOBIN。...其中,GOPATH背后的概念是最多的,也是最重要的。...我们先来说一下GOPATH,go1.8之前必须设置这个变量,从go 1.8开始,GOPATH环境变量现在有一个默认值,就是在用户根目录的 go目录。 为什么要设置GOPATH呢?...答案是: 环境变量GOPATH的值可以是一个目录的路径,也可以包含多个目录路径,如果是多个目录,用: 进行分割,每个目录都代表Go语言的一个工作区(workspace)。...[image.png] 总结 Go语言提供的很多工具都是在GOPATH和工作区的基础上运行的,比如上面提到的 go build 、 go install 和 go get ,这三个命令,所以 设置GOPATH

2.9K30

《快学 Go 语言》第 16 课 —— 包管理 GOPATH 和 Vendor

全局管理 GOPATH Go 语言的 GOPATH 路径下存放了全局的第三方依赖包,当我们在代码里面 import 某个第三方包时,编译器都会到 GOPATH 路径下面来寻找。...GOPATH 目录可以指定多个位置,不过用户一般很少这样做。如果你没有人工指定 GOPATH 环境变量,编译器会默认将 GOPATH 指向的路径设定为 ~/go 目录。...用户可以使用下面的命令看看自己的 GOPATH 指向哪里 $ go env GOPATH /Users/qianwp/go GOPATH 下有三个重要的子目录,分别是 src、pkg 和 bin 目录...相对导入可以不必将代码放在 GOPATH 里面编写,所以会方便本地测试。但是将代码放到 GOPATH 里面写又能产生多大障碍呢?总之就是不推荐使用相对导入。 两个包的包名一样怎么办?...将编译成的包对象安装到 GOPATH 的 pkg 目录中,将编译成的可执行文件安装到 GOPATH 的 bin 目录中。如果指定 -i 参数,还会安装编译成功的第三方依赖包对象。

1.1K40

初学者没有搞明白的GOROOT,GOPATH,GOBIN,project目录

zhaofan$ go env GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH...-g -O2" PKG_CONFIG="pkg-config" localhost:~ zhaofan$ GOROOT 其实就是golang 的安装路径 当你安装好golang之后其实这个就已经有了 GOPATH...go命令依赖的一个重要环境变量:$GOPATH 其实可以把这个目录理解为工作目录,我个人定义的目录是: GOPATH="/Users/zhaofan/go_project" 当然这个目录是需要添加到环境变量中的...go_project // (go_project为GOPATH目录) -- bin // golang编译可执行文件存放路径 -- pkg // golang编译包时,生成的.a文件存放路径 --...bin目录下,当然这是有前提的 你编译的是可执行文件,如果是一个普通的包,会被编译生成到pkg目录下该文件是.a结尾 关于go的整体一个开发目录 go_project // go_project为GOPATH

2.3K70
领券