GOROOT

golang安装路径。

GOPATH

GOPATH可以设置多个工程目录,linux下用冒号分隔(必须用冒号,fish shell的空格分割会出错),windows下用分号分隔,但是go get 只会下载pkg到第一个目录,但是编译的时候会搜索所有的目录。

在fish shell下,使用 set -x GOPATH  PATH1:PATH2:PATH3 来设置,不能使用 set -x GOPATH  PATH1 PATH2 PATH3, 这一点确实很特殊。

具体用途:go命令常常需要用到的,如go run,go install, go get等。允许设置多个路径,和各个系统环境多路径设置一样,windows用“;”,linux(mac)用“:”分隔。

当存在多个路径时,会优先采用第一个路径。

GOBIN

go install编译存放路径。不允许设置多个路径。可以不设置(而且建议不设置。注意 不设置不是说设置为空, export GOBIN= 就是设置为空,不建议这么做,  fish shell 的 set -x GOBIN 也是设置为空。为了保险起见,推荐直接显式的使用 unset GOBIN 或 set -e GOBIN 来删除环境变量,前面的unset是bash命令,后面的set -e是 fish shell的)。为空时则遵循“约定优于配置”原则,可执行文件放在各自GOPATH目录的bin文件夹中(前提是:package main的main函数文件不能直接放到GOPATH的src下面)。但是,即便不设置 GOBIN,为了运行 go get 安装的插件,你还需要将各个 ${GOPATH}/bin 均加入到 PATH 里去。

下面是我自己的设置示例(fish shell):

# hzh add for golang
set -e GOBIN
set -x GOROOT /home/hzh/soft/golang
set -l GOPATH1 /home/hzh/develop/gopath
set -l GOPATH2 /home/hzh/develop/goproj
set -x GOPATH {$GOPATH1}:{$GOPATH2} set -x PATH {$GOROOT}/bin {$GOPATH1}/bin {$GOPATH2}/bin {$PATH}

GOROOT、GOPATH、GOBIN的更多相关文章

  1. GOROOT、GOPATH、GOBIN、project目录 _(转)

    前言:我觉得java程序员学golang很容易上手.关于GOROOT.GOPATH.GOBIN这些环境变量的设置,我隐约感觉到了java的影子(尽管我是一个C++程序员),唯一和java不同的是不能设 ...

  2. Go语言之讲解GOROOT、GOPATH、GOBIN

    Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. go命令依赖一个重要的环境变量:$GOPATH GOPATH允许多个目录, ...

  3. Go | 讲解GOROOT、GOPATH、GOBIN

    前言 Go(又称 Golang)是 Google 开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言.Go 被誉为是未来的服务器端编程语言. Go是一门全新的静态类型开发语言,具有自动 ...

  4. Golang:GOROOT、GOPATH、GOBIN变量的含义

    背景 移植完了go以后,在配置变量的时候不太清楚这些变量的含义,找了有关的资料. 使用 go env可以获取 go 有关的环境变量,下面是我的go环境: GO111MODULE="" ...

  5. [Golang] GOROOT、GOPATH和Project目录说明

    go env环境查看 用go env 可查看当前go环境变量. $ go env GOARCH="amd64" GOBIN="" GOEXE="&qu ...

  6. GOROOT、GOPATH和project目录说明

    go env环境查看 用go env 可查看当前go环境变量. $ go env GOARCH="amd64" GOBIN="" GOEXE="&qu ...

  7. 【Go入门教程1】Go 安装,GOROOT,GOPATH,Go工作空间

    Go安装 Windows 安装 访问Golang Code下载页,32 位请选择名称中包含 windows-386 的 msi 安装包,64 位请选择名称中包含 windows-amd64 的.下载好 ...

  8. 【Go入门教程3】流程(if、goto、for、switch)和函数(多个返回值、变参、传值与传指针、defer、函数作为值/类型、Panic和Recover、main函数和init函数、import)

    这小节我们要介绍Go里面的流程控制以及函数操作. 流程控制 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑.Go中流程控制分三大类:条件判断,循环控制和 ...

  9. protobuffer、gRPC、restful gRPC的相互转化

    转自:https://studygolang.com/articles/12510 文档 grpc中文文档 grpc-gateway,restful和grpc转换库 protobuf 官网 proto ...

随机推荐

  1. Oracle中add_months()函数的用法

    查询当前时间1个月以前的时间: select add_months(sysdate,-1) from dual; 查询当前时间1个月以后的时间: select add_months(sysdate,1 ...

  2. Gym 101149L Right Build

    L. Right Build time limit per test 2.0 s memory limit per test 256 MB input standard input output st ...

  3. C++文件流操作

    #include <iostream> #include <fstream> #include<iostream> using namespace std; int ...

  4. Django之Web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  5. 对类型“Func<,>”的引用声称该类型是在“mscorlib”中定义的,但未能找到

    报错 右击→属性

  6. ASP.NET Core奇遇记:无用户访问,CPU却一直100%

    这是5月11日遇到的一个问题,1台1核1G阿里云Linux服务器运行着生产环境中的ASP.NET Core站点,出现CPU 100%问题. 开始以为是这台服务器负载高引起的,于是将这台服务器从负载均衡 ...

  7. Away3D引擎学习入门笔记

    (1). 准备工作,一些必须知道的东西 (创建时间:2014-06-05) A.必要的开发语言基础.至少要懂点ActionScript 3.0语法(ActionScript 3.0语法及API参考), ...

  8. Vue 超快速学习

    Vue 超快速学习 基础知识: 1.vue的生命周期: beforeCreate/created. beforeMount/mounted. beforeUpdate/updated. beforeD ...

  9. Linux下无法清空回收站

    清空回收站发生错误,直接使用命令 sudo rm -rf ~/.local/share/Trash/files/* 搞定

  10. PHP之错误

    三.PHP配置之Error handling logging 1.error_reporting integer error_reporting = E_ALL 设置错误报告的级别.该参数可以是一个任 ...