如何理解Go语言的GOROOT/GOPATH
可以简单理解为:
$GOPATH 是go的工程目录
/home/guest/gocode
├── bin
├── pkg
└── src
$GOROOT 是go的安装目录
/home/guest/tools/go
├── api
├── AUTHORS
├── bin
├── blog
├── CONTRIBUTING.md
├── CONTRIBUTORS
├── doc
├── favicon.ico
├── lib
├── LICENSE
├── misc
├── PATENTS
├── pkg
├── README.md
├── robots.txt
├── src
├── test
└── VERSION
1. GOROOT
简而言之,GOROOT在GO语言中表示的是go语言编译、工具、标准库等的安装路径,在Linux系统中一般安装在
/usr/go 或者 /usr/local/go
这样Linux系统中的PATH变量一般都包含了这两个目录,所以就可以直接运行go命令,而Windows系统中一般默认安装在C:\go中。
如果自定义安装go的话,需要设置GOROOT的值,比如在Linux系统中用户如有root用户权限时,想安装go至自己的工作目录中,就要设置GOROOT为自己的HOME目录中,假设安装在/home/目录中的go目录,则需要这样设置GOROOT:
export GOROOT=$HOME/go
最好将这条命令放到.bashrc中,这样每次登录就可以自动配置GOROOT。
为了确定GOROOT值,可以使用go env命令显示当前的值
2. GOPATH
GOPATH环境变量则表示go的工作目录,这个目录指定了需要从哪个地方寻找GO的包、可执行程序等,这个目录可以是多个目录表示,go编译或者运行时会从这个环境变量中去对应查找,可能还不够清晰,工作目录或者如官方文档中说的workspace,可以这么理解为GO源码目录,在这个目录进行编译、链接最后生成所需要的库、可执行文件,我们对比C程序的目录,也许更能方便理解,一般在C的工程项目中包含三个文件,一个include目录、src目录、Makefile文件。
include目录存放了所有的头文件可供其他地方包含
src目录则存放所有的.c后缀的源文件
Makefile则是该项目的编译,在编译整个工程时需要执行make命令,这里就发现GO就不需要去写什么Makefile了,执行build命令就可以自动编译。
3. GOROOT和GOPATH必须设置正确,且对于GO标准库而言,import的时候不需要写全路径,而对于GOPATH中的包而言需要根据目录层次写清楚包的path。
如何理解Go语言的GOROOT/GOPATH相关推荐
- 小议并实战go包------顺便说说go中的GOROOT,GOPATH和src,pkg,bin
前些天带爸妈去上海.杭州玩了一下, 感觉很久没写博客了. "协程"在手, 说go就go. 以后尽量少扯C++, 多说go, 本文来说说go中的一些基本概念,如包,import, G ...
- AI 真的能够理解人类语言吗?
作者 | Melanie Mitchell 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 2011年,IBM 的人工智能系统沃森参加综艺节目<危险边缘>,并获得了冠军,当时 ...
- 理解C语言中指针的声明以及复杂声明的语法
昨天刚把<C程序设计语言>中"指针与数组"章节读完,终于把心中的疑惑彻底解开了.现在记录下我对指针声明的理解,顺便说下如何在C语言中创建复杂声明以及读懂复杂声明. 本文 ...
- Google发布了能理解人类语言的云服务
原文地址:Google launches cloud service for understanding human language 作者:Blair Hanley Frank 翻译:赖信涛 责编: ...
- 深入理解C语言的函数调用过程
深入理解C语言的函数调用过程 本文主要从进程栈空间的层面复习一下C语言中函数调用的具体过程,以加深对一些基础知识的理解. 先看一个最简单的程序: 点击(此处)折叠或打开 /*test.c*/ ...
- html是大部分计算机都可以理解的语言,关于胃的静脉回流,哪项错误()。A、胃左静脉汇入门静脉或脾静脉B、胃右静脉汇入门静脉主干C、胃短...
关于胃的静脉回流,哪项错误().A.胃左静脉汇入门静脉或脾静脉B.胃右静脉汇入门静脉主干C.胃短 更多相关问题 HTML是大部分计算机都可以理解的语言.() 多个人相互可以交换信息,包括计算机.通信线 ...
- 怎么理解python语言_Python语言入门1-理解Python语言
本文主要向大家介绍了Python语言入门的理解Python语言,通过具体的内容向大家展现,希望对大家学习Python语言入门有所帮助. python是解释型的脚本语言 解释型语言 与C/C++等编译型 ...
- 能被计算机硬件理解的语言,(计算机原理综合练习一含答案.doc
(计算机原理综合练习一含答案 计算机原理综合练习一 一.填空题: 1.计算机中的主机分为 和 . 2.计算机软件系统分为 和 . 3.计算机与其它计算工具最大的区别是 . 4.(23.75)10=( ...
- D1net阅闻:Google发布了能理解人类语言的云服务
Google发布了能理解人类语言的云服务 Google智能云开发工具加入了一种云端自然语言API.这项服务可以帮助开发者的应用理解人类语言. 微软已成为iPhone应用重要开发商 推出最新应用Pix ...
最新文章
- 北理工计算机学院专业确认,北理工 2021 强基计划报名增加确认环节,限报 1 校 1 专业...
- SaaS加速器II 能力中心:互利互补 共享商业红利 1
- 天翼云centos7.5系统挂载磁盘
- Java MySql 连接数据库
- 【渝粤教育】国家开放大学2018年春季 0599-21T工程造价管理基础理论与相关法规 参考试题
- Guava常用工具类的使用
- ios 可以为空声明_iOS开发中使用OC和swift的对比(2)
- Hash算法中的CRC
- 【英语学习】【English L06】U03 House L2 Let's look for an apartment online
- “头腾大战”烧至在线办公:微信封禁飞书做错了吗?
- cad在线转换低版本_别再傻瓜式操作了,工作效率上不去?这6个小技巧带你玩转CAD...
- 作为大数据开发中最重要技术,spark需要掌握哪些技能呢
- 筑墙——只需一点点安全常识就能阻止网络犯罪
- Filco圣手二代双模蓝牙机械键盘的连接方法
- 为湖北带货,1.2亿人围观!朱广权联手李佳琦隔空直播卖出4014万
- MySql定期备份数据到历史表的解决方案
- 炉石一直显示连接服务器,炉石传说无法连接战网服务器怎么办 处理方法详解...
- python的openpyxl模块合并单元格,浅谈openpyxl库,遇到批量合并单元格的问题
- 【机器视觉】工业传统视觉和3D视觉算法
- python 深度学习源码_「深度学习」用TensorFlow实现人脸识别(附源码,快速get技能)...
热门文章
- Anaconda的下载和安装(保姆级别教程)
- 优思学院|六西格玛和ISO9000可否结合一起实施?
- FileTracker : error FTK1013: 在以下文件跟踪日志文件中,未能找到 unicode 字节顺序标记: E:\HT-Mobile\cocos2d-project\MobileP
- STM32--解析GPS数据包代码
- linux 服务器之间共享目录
- 串口控制直流电机程序 80C51单片机 L298N 普中51-单核-A4
- uniapp签到页面
- 解决谷歌浏览器不能播放音乐的问题
- VR场景会对普通场景的摄像机有影响
- 当单片机遇上状态机(二) 为什么QP难以入门?