GOPATH和GOROOT
安装指定版本golang
apt-get purge golang* //删除之前安装的文件
add-apt-repository ppa:evarlast/golang-1.8
apt-get update
apt-get install golang-1.8
vim ~/.bashrc
PATH=$PATH:/usr/lib/go-1.8/bin
source ~/.bashrc
环境变量
- GOROOT golang安装路径 包含golang源码和它们的二进制文件
- GOPATH 工作目录
查看安装之后的环境变量
root@ubuntu:~# go env
GOPATH=""
GOROOT="/usr/lib/go-1.6"
设置环境变量
mkdir -p /home/Projects/Go //创建工作目录
vim ~/.bashrc //编辑此文件 并添加如下代码
GOPATH=/Home/Projects/Go
export GOPATH
PATH=$PATH:$GOPATH/bin # Add GOPATH/bin to PATH for scripting
source ~/.bashrc //生效配置
再次查看环境变量
root@ubuntu:~# go env
GOPATH="/Home/Projects/Go"
GOROOT="/usr/lib/go-1.6"
创建自己的应用包
mkdir -p $GOPATH/src/Hello //创建文件夹
cd $GOPATH/src/Hello //进入到目录
vim Hello.go //创建hello文件
package Hello
import "fmt"
func Say(){
fmt.Println("hello world")
}
- 这里需要大写
编译应用
- 任意目录执行 go install + 包名称
- 包目录下执行 go install
编译之前的目录
root@ubuntu:/Home/Projects/Go# tree
.
└── src
└── Hello
└── Hello.go
编译一个不存在的包
root@ubuntu:/home/Projects/Go/src/hello# go build test
can't load package: package test: cannot find package "test" in any of:
/usr/lib/go-1.8/src/test (from $GOROOT)
/Home/Projects/Go/src/test (from $GOPATH)
- 这里可以看到默认会从GOROOT和GOPATH 找相对应的包
编译
go build Hello
查看编译后的目录
root@ubuntu:/Home/Projects# tree
.
└── Go
├── pkg
│ └── linux_amd64
│ └── Hello.a
└── src
└── Hello
└── Hello.go
5 directories, 2 files
- 这里可以看到有一个pkg目录,下面有一个hello.a文件
创建主文件并引用刚才创建的包文件
mkdir main
vim main.go
package main
import "Hello"
func main(){
Hello.Say();
}
编译程序并查看
go build
root@ubuntu:/Home/Projects/Go# tree
.
├── pkg
│ └── linux_amd64
│ └── Hello.a
└── src
├── Hello
│ └── Hello.go
└── main
├── main
└── main.go
- 这里多了一个main文件夹就是可执行文件
执行可执行文件
root@ubuntu:/Home/Projects/Go/src/main# ./main
hello world
安装应用并查看
root@ubuntu:/Home/Projects/Go/src/main# go install
root@ubuntu:/Home/Projects/Go# tree
.
├── bin
│ └── main
├── pkg
│ └── linux_amd64
│ └── Hello.a
└── src
├── Hello
│ └── Hello.go
└── main
└── main.go
- 可以看到 多了一个bin目录 且目录下面有一个main文件
执行应用
root@ubuntu:/# main
hello world
GOPATH和GOROOT的更多相关文章
- golang 的GOPATH设置的问题
go run footer.go 的时候呢, go会依次去GOPATH 和GOROOT设置的对应路径下面找对应的包(目录和文件) 找的时候呢, 会在GoPATH 和GOROOT对应的目录后面再加一层路 ...
- windows下gopath设置
下载了go语言的安装包, 然后安装, 装完了需要设置三个地方: 1. 在windows的PATH变量中添加go的可执行文件所在的目录: PATH=C:\Go\bin;其他设置; 2. 设置 GOROO ...
- windows go安装
1.安装git 因为golang是通过git来管理远程包的,所以我们首先要安装git,下载地址:http://www.git-scm.com/download/. git安装比较简单,直接下一步即可( ...
- 搭建fedora开发环境 common lisp, c++, go
第三方软件库: http://download1.rpmfusion.org/free/fedora/releases/25/Everything/x86_64/os/repoview/index.h ...
- 安装thrift
要求 thrift至少需要支持三种语言: Java PHP Go 预安装 基本教程: http://thrift.apache.org/docs/install/centos 使用最新的thrift, ...
- go linux 学习记录
1 yum install mercurial 安装mercurial包 2 yum install git 安装git包 3 yum install gcc 安装gcc 4 然后就可以下载gola ...
- PyCharm/IntelliJ IDEA Golang开发环境搭建(最方便快捷的GO语言开发环境)
IntelliJ太牛了.为了配置Go语言开发环境,折腾了半天,下IDE(Sublime Text,IntelliJ Idea),然后装Go插件.装Go插件还要下载插件项目源码,编译等等,Sublime ...
- golang vim环境搭建
主要使用到的是golang的vim插件vim-go, 安装方法: (1)配置好自己的GOPATH和GOROOT: (2)在GOPATH目录下建立 src.pkg.main.bin四个目录: (3)安装 ...
- golang初体验
使用golang开发已经有一个多月了,除了一开始遇到的各种小白问题,IDE的选择,gopath,goroot的配置...后边还算顺风顺水的.实践体验,golang真的适合快速开发.特别是后台开发,直接 ...
随机推荐
- Codeforces Round #563 (Div. 2) B. Ehab Is an Odd Person
链接:https://codeforces.com/contest/1174/problem/B 题意: You're given an array aa of length nn. You can ...
- UVaLive6435(dp)
要点 题意:两个数据传输数列,每个数列里有若干个数据包并给出发出时间\(t\),每个数据包到达的时间\(T\)是\(t <= T < t + D\),问有多少种到达序列. 将题目转化为第二 ...
- Consul实现服务治理1
NET Core微服务之基于Consul实现服务治理 https://www.cnblogs.com/edisonchou/p/9148034.html 一.Consul服务注册之配置文件方式 1.1 ...
- (转)Module ngx_http_fastcgi_module
Example ConfigurationDirectives fastcgi_bind fastcgi_buffer_size fastcgi_buffering f ...
- 浅析libuv源码-node事件轮询解析(3)
好像博客有观众,那每一篇都画个图吧! 本节简图如下. 上一篇其实啥也没讲,不过node本身就是这么复杂,走流程就要走全套.就像曾经看webpack源码,读了300行代码最后就为了取package.js ...
- Linux学习笔记——如何使用echo指令向文件写入内容
0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容 ...
- 解决Chrome浏览器自动记录用户名和密码的黄色背景问题和该解决方法与tab切换至下一个input冲突的问题。
哈哈哈,是不是标题很长呀,不逗你们了.其实这么长的标题主要就说了两件事: 第一件:解决Chrome浏览器自动记录用户名和密码的黄色背景问题. 第二件:输入完用户名后按下tab键切换至下一个输入密码in ...
- redis 大批量数据插入导致MISCONF Redis is configured to save RDB snapshots的解决
PS:之前写过一遍,那个方法没有彻底解决,现找到真正的解决方法 环境:redis 3.2.100 windows版(注意!!!这是关键),win10,redis客户端spring boot 2.0.7 ...
- $'\r': command not found 或者 syntax error: unexpected end of file 或者 syntax error near unexpected token `$'\r''
执行shell脚本如果报如下错误: syntax error near unexpected token `$'\r'' syntax error: unexpected end of file $' ...
- 数据库之游标过程-- 基于MySQL
实例如下: DROP PROCEDURE IF EXISTS pr_change_station_user_acct_his; -- 如果存在存储过程,即删除存储过程 create procedure ...