环境变量GOPATH使用试验
Intel Core i5-8250U,Windows 10家庭中文版,Visual Studio Code 1.26.1
中午的时候,自己把环境变量GOBIN给清空了。刚刚继续工作时发生了异常:使用Visual Studio Code写的代码,无法使用go install编译运行(或生成可执行文件)。
package main var x, y int
var (
a int
b bool
) var c, d int = 1, 2
var e, f = 123, "hello" func main() {
g, h := 321, "olleh" println(x, y, a, b, c, d, e, f, g, h)
}
eg1.go
源文件位于项目的src下的app3文件夹中——D:\ws\golang\prj1\src\app3。
在终端进入prj1的src目录,执行go install .\app3,结果发生下面的错误——应用程序app3的目录位于GOPATH之外,,此时的GOPATH是默认值,只有一个目录,位于C:\users\<username>\go:
>go install .\app3
go install: no install location for directory D:\ws\golang\prj1\src\app3 outside GOPATH
For more details see: 'go help gopath'
进入app3的目录执行go install eg1.go也不行——提示没有设置GOBIN,因为自己前面清空了它:
app3>go install eg1.go
go install: no install location for .go files listed on command line (GOBIN not set)
在前面一篇博文的更新中了解到,设置了GOBIN可以解决第二个问题。那么,第一个问题怎么解决呢?
通过看一些关于GO环境变量的文章(参考链接),知道GOPATH可以设置多个值,好吧,把当前项目加入到GOPATH中,再测试一下吧!
注意,在这之前,自己尝试把eg1.go放到GOPATH下的src中的一个文件夹中,此时执行go install是 成功的,所以才会有上面的想法 和 本文。
在当前终端把eg1.go所在项目路径 附加到GOPATH中,再测试go install,结果,成功!可执行文件被放到了项目的bin文件中了。
D:\ws\golang\prj1>echo %GOPATH%
C:\Users\log\go D:\ws\golang\prj1>set GOPATH=%GOPATH%;D:\ws\golang\prj1 D:\ws\golang\prj1>echo %GOPATH%
C:\Users\log\go;D:\ws\golang\prj1 D:\ws\golang\prj1>go install .\src\app3 D:\ws\golang\prj1>dir bin
驱动器 D 中的卷是 新加卷
卷的序列号是 BAD3-E0B3 D:\ws\golang\prj1\bin 的目录 2018/09/10 15:36 <DIR> .
2018/09/10 15:36 <DIR> ..
2018/09/10 15:04 1,021,440 app2.exe
2018/09/10 15:36 1,021,440 app3.exe D:\ws\golang\prj1>.\bin\app3.exe
0 0 0 false 1 2 123 hello 321 olleh
上面执行成功!
前面提到的是两个错误:go install后跟文件夹名-失败,go install后跟源文件名-失败。上面设置GOPATH仅仅解决了第一个问题,那么,第二个问题怎么解决呢?
根据错误提示,设置GOBIN!GOBIN设置在哪里,go install后的可执行文件就出现在哪里!(前一篇博文的更新部分有介绍)。
查看go install的用法:其最后一个参数时packages(多个包吗?),而不是源文件,,这部分内容自己还没弄明白,后续再dig。
>go help install
usage: go install [-i] [build flags] [packages] Install compiles and installs the packages named by the import paths. The -i flag installs the dependencies of the named packages as well. For more about the build flags, see 'go help build'.
For more about specifying packages, see 'go help packages'. See also: go build, go get, go clean.
测试使用go install同时安装多个应用程序:果然可以!
D:\ws\golang\prj1\src>go install app1 app2 app3 D:\ws\golang\prj1\src>cd .. D:\ws\golang\prj1>cd bin D:\ws\golang\prj1\bin>dir
驱动器 D 中的卷是 新加卷
卷的序列号是 BAD3-E0B3 D:\ws\golang\prj1\bin 的目录 2018/09/10 15:47 <DIR> .
2018/09/10 15:47 <DIR> ..
2018/09/10 15:47 1,952,768 app1.exe
2018/09/10 15:47 1,021,440 app2.exe
2018/09/10 15:47 1,021,440 app3.exe
3 个文件 3,995,648 字节
2 个目录 78,701,293,568 可用字节
通过本次试验,自己也理解了Eclipse里面的一个Go配置项的意义了:Also add project location to GOPATH, ...

参考链接
1.GOROOT、GOPATH、GOBIN、project目录
后记
对于Go命令工具,自己还需要更熟悉才是。那样的话,可以少走不少弯路的。
下面的教程挺好的,需要看看:
GO 命令教程(http://wiki.jikexueyuan.com/project/go-command-tutorial/)
环境变量GOPATH使用试验的更多相关文章
- go环境变量配置 (GOROOT和GOPATH)
GOROOT就是go的安装路径在~/.bash_profile中添加下面语句: GOROOT=/usr/local/go export GOROOT 当然, 要执行go命令和go工具, 就要配置go的 ...
- go环境变量配置 (GOROOT和GOPATH)的区别和含义
GOROOT就是go的安装路径 在~/.bash_profile中添加下面语句: GOROOT=/usr/local/go export GOROOT 当然, 要执行go命令和go工具, 就要配置go ...
- [daily][emacs][go] 配置emacs go-mode的编辑环境以及环境变量问题
1. 安装go 安装go-mode 使用emacs编辑go代码的时候,你需要有正常可运行的go环境. 并且有emacs的go-mode package https://www.emacswiki.or ...
- linux /mac 下 go环境变量配置
安装了go语言之后,还要设置路径,如果不设置路径,则执行 go 的时候会提示 go: command not found,提示的意思是没有这个命令行.这个是因为还没有设置PATH路径. 设置路径的方式 ...
- go语言,golang学习笔记3 用命令下载框架报错问题解决 设置环境变量
go语言,golang学习笔记3 用命令下载框架报错问题解决 设置环境变量 下载安装:go get github.com/astaxie/beego 首页 - beego: 简约 & 强大并存 ...
- GO环境变量设置
GOROOT就是go的安装路径在~/.bash_profile中添加下面语句: GOROOT=/usr/local/go export GOROOT 当然, 要执行go命令和go工具, 就要配置go的 ...
- Golang 环境变量及工作区概念
GOROOT go的安装路径 GOPATH 可以有多个目录,每个目录就是一个工作区,放置源码文件,以及安装后的归档文件和可执行文件: 第一个工作区比较重要,go get会自动从一些主流公用代码仓库下载 ...
- 安装 go和beego后的环境变量设置
简介 之前有几次因为环境变量设置的问题 损失了一些时间,特在此做记录 安装golang 可参考官方Getting Started,但有时候有问题. 解压 tar -C /usr/local -xzf ...
- golang 环境变量讲解
以下配置以MAC 下配置为例,但其他环境下大同小异. GOROOT就是go的安装路径在~/.bash_profile中添加下面语句: GOROOT=/usr/local/go export GOROO ...
随机推荐
- 移动的调试工具vConsole
在PC端写代码调试的时候,直接console.log()即可,但是在手机端怎么调试??最近发现一个很有用的插件vConsole 首先引入插件: 然后再文件中使用即可: 这样再手机中就会出现下面的标识, ...
- 在vue中如何动态修改title标签的值
建议用vue-wechat-title插件为微信动态设置标题 1,首先安装插件 cnpm install vue-wechat-title --save 2,在main.js中引入 Vue.use(r ...
- poj 2299 Ultra-QuickSort(树状数组)
Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 67681 Accepted: 25345 ...
- M公司的回忆录——L公司
2013年3月笔者回国的第一站便是这人称有福之州的福州.受我兄弟之邀笔者来到了L公司.而这也是笔者与M公司相遇的前缘.此时的L公司只是一个刚起步的创业公司.与所有创业公司一样子——创业初期存在着很多问 ...
- github使用记录
背景:一直以来,对github既向往又排斥,是因为感觉高大尚有感觉很陌生.现在跟着辉哥学习项目技术,打算好好的学习下这个工具的使用. 1 基础常识 1.1 基础讲解 star的作用是收藏,目的是方便以 ...
- 8: springMVC ModelAndView 作用与功能解析
Spring mvc视图机制 所有的web应用的mvc框架都有它定位视图的方式.Spring提供了视图解析器供你在浏览器中显示模型数据,而不必被拘束在特定的视图技术上. Spring的控制器Contr ...
- easyui的tab加载页面中的form重复提交
http://blog.csdn.net/fxz1982/article/details/8987769 Easyui中的tabs组件以href方式加载目标页面,如果目标页面中有dialog或者win ...
- 浅谈跨平台框架 Flutter 的优势与结构
作者:个推iOS工程师 伊泽瑞尔 一.背景 目前,移动开发技术主要分为原生开发和跨平台开发两种.其中,原生应用是指在某个特定的移动平台上,使用平台所支持的开发工具和语言,直接调用系统提供的API所开发 ...
- arcgis计算邻接矩阵
求邻接矩阵 教程链接 http://m.blog.csdn.net/wan_yanyan528/article/details/49175673 (1) 将目标shp文件导出一份副本备用(以省级为 ...
- 函数和常用模块【day05】:装饰器前奏(一)
本节内容 定义 原则 实现装饰器的储备知识 函数及变量 高阶函数 一.定义 1.装饰器:本质是函数. 2.功能:用来装饰其他函数,顾名思义就是,为其他的函数添加附件功能的. 二.原则 不能修改被装饰函 ...