安装指定版本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的更多相关文章

  1. golang 的GOPATH设置的问题

    go run footer.go 的时候呢, go会依次去GOPATH 和GOROOT设置的对应路径下面找对应的包(目录和文件) 找的时候呢, 会在GoPATH 和GOROOT对应的目录后面再加一层路 ...

  2. windows下gopath设置

    下载了go语言的安装包, 然后安装, 装完了需要设置三个地方: 1. 在windows的PATH变量中添加go的可执行文件所在的目录: PATH=C:\Go\bin;其他设置; 2. 设置 GOROO ...

  3. windows go安装

    1.安装git 因为golang是通过git来管理远程包的,所以我们首先要安装git,下载地址:http://www.git-scm.com/download/. git安装比较简单,直接下一步即可( ...

  4. 搭建fedora开发环境 common lisp, c++, go

    第三方软件库: http://download1.rpmfusion.org/free/fedora/releases/25/Everything/x86_64/os/repoview/index.h ...

  5. 安装thrift

    要求 thrift至少需要支持三种语言: Java PHP Go 预安装 基本教程: http://thrift.apache.org/docs/install/centos 使用最新的thrift, ...

  6. go linux 学习记录

    1 yum install mercurial 安装mercurial包 2 yum install git 安装git包 3 yum install gcc 安装gcc 4  然后就可以下载gola ...

  7. PyCharm/IntelliJ IDEA Golang开发环境搭建(最方便快捷的GO语言开发环境)

    IntelliJ太牛了.为了配置Go语言开发环境,折腾了半天,下IDE(Sublime Text,IntelliJ Idea),然后装Go插件.装Go插件还要下载插件项目源码,编译等等,Sublime ...

  8. golang vim环境搭建

    主要使用到的是golang的vim插件vim-go, 安装方法: (1)配置好自己的GOPATH和GOROOT: (2)在GOPATH目录下建立 src.pkg.main.bin四个目录: (3)安装 ...

  9. golang初体验

    使用golang开发已经有一个多月了,除了一开始遇到的各种小白问题,IDE的选择,gopath,goroot的配置...后边还算顺风顺水的.实践体验,golang真的适合快速开发.特别是后台开发,直接 ...

随机推荐

  1. python数值类型与序列类型

    基本运算符 / 浮点除法 //整除 x**y  x的y次方 python中严格区分大小写 type(xx)/内置函数,查看变量xx的类型 id(xx)/内置函数,查看变量xx的内存地址 //----- ...

  2. HDU-2586-How far away(LCA Tarjan离线算法)

    链接:https://vjudge.net/problem/HDU-2586 题意: 勇气小镇是一个有着n个房屋的小镇,为什么把它叫做勇气小镇呢,这个故事就要从勇气小镇成立的那天说起了,修建小镇的时候 ...

  3. M-HJ浇花

    题目描述: 链接:https://ac.nowcoder.com/acm/contest/322/M来源:牛客网 HJ养了很多花(99999999999999999999999999999999999 ...

  4. NOI2015程序自动分析 并查集

    有10^9个点,每次给出两个点的关系:权相等或不等,问最后能不能成立 感觉一开始在撕烤一个动态的问题,,,想写一个带权的并查集 结果发现静态询问,那就sb乱搞,懒得手写离散就直接map(卧槽好多细节忘 ...

  5. php数组生成树结构数据返回

    现在有这样一个数组,要求按照树结构返回(当pid=0就表示其为菜单id,否则pid的值就是其属于某个菜单id下面): $array = array( 1 => array ('id' => ...

  6. Python入门_汇总_未完待续

    if/elseif/else for while break continue 多重循环 list [] duple() dict {} set {[]} 函数 help(abs) 查看abs函数的帮 ...

  7. String 中配置文件详解

    <context:component-scan>使用说明 http://blog.csdn.net/chunqiuwei/article/details/16115135

  8. linux替换文件中的某个字符串的命令sed

    sed -i 's/java-7-oracle/java-8-oracle/g' /etc/init.d/tomcat7 上面的命令是将tomcat7中的java-7-oracle替换为java-8- ...

  9. Java基础学习_01 概述及环境配置

    一.概述 1.Java语言平台版本 1.1J2SE(Java 2 Platform Standard Edition)标准版 为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可 ...

  10. MariaDB 实现主从复制

    實驗目的: MariaDB為MySQL的一個分支,其完全開源.無版權之虞且操作上與 MySQL 一脈相承,實際應用中非常廣泛,軟件本身很小,安裝容易,使用簡單. 但其也有缺點,指令行方式操作,無原生G ...