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真的适合快速开发.特别是后台开发,直接 ...
随机推荐
- python数值类型与序列类型
基本运算符 / 浮点除法 //整除 x**y x的y次方 python中严格区分大小写 type(xx)/内置函数,查看变量xx的类型 id(xx)/内置函数,查看变量xx的内存地址 //----- ...
- HDU-2586-How far away(LCA Tarjan离线算法)
链接:https://vjudge.net/problem/HDU-2586 题意: 勇气小镇是一个有着n个房屋的小镇,为什么把它叫做勇气小镇呢,这个故事就要从勇气小镇成立的那天说起了,修建小镇的时候 ...
- M-HJ浇花
题目描述: 链接:https://ac.nowcoder.com/acm/contest/322/M来源:牛客网 HJ养了很多花(99999999999999999999999999999999999 ...
- NOI2015程序自动分析 并查集
有10^9个点,每次给出两个点的关系:权相等或不等,问最后能不能成立 感觉一开始在撕烤一个动态的问题,,,想写一个带权的并查集 结果发现静态询问,那就sb乱搞,懒得手写离散就直接map(卧槽好多细节忘 ...
- php数组生成树结构数据返回
现在有这样一个数组,要求按照树结构返回(当pid=0就表示其为菜单id,否则pid的值就是其属于某个菜单id下面): $array = array( 1 => array ('id' => ...
- Python入门_汇总_未完待续
if/elseif/else for while break continue 多重循环 list [] duple() dict {} set {[]} 函数 help(abs) 查看abs函数的帮 ...
- String 中配置文件详解
<context:component-scan>使用说明 http://blog.csdn.net/chunqiuwei/article/details/16115135
- linux替换文件中的某个字符串的命令sed
sed -i 's/java-7-oracle/java-8-oracle/g' /etc/init.d/tomcat7 上面的命令是将tomcat7中的java-7-oracle替换为java-8- ...
- Java基础学习_01 概述及环境配置
一.概述 1.Java语言平台版本 1.1J2SE(Java 2 Platform Standard Edition)标准版 为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可 ...
- MariaDB 实现主从复制
實驗目的: MariaDB為MySQL的一個分支,其完全開源.無版權之虞且操作上與 MySQL 一脈相承,實際應用中非常廣泛,軟件本身很小,安裝容易,使用簡單. 但其也有缺點,指令行方式操作,無原生G ...