安装指定版本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. 2017百度之星程序设计大赛 - 复赛 Arithmetic of Bomb

    http://acm.hdu.edu.cn/showproblem.php?pid=6144 解法:一个简单的模拟 #include <bits/stdc++.h> using names ...

  2. python大战机器学习——人工神经网络

    人工神经网络是有一系列简单的单元相互紧密联系构成的,每个单元有一定数量的实数输入和唯一的实数输出.神经网络的一个重要的用途就是接受和处理传感器产生的复杂的输入并进行自适应性的学习,是一种模式匹配算法, ...

  3. jdbc查询

    import java.util.ArrayList; import java.util.List; import org.springframework.jdbc.core.BeanProperty ...

  4. NET?.NET Framework?.NET Core?

    什么是.NET?什么是.NET Framework?什么是.NET Core? https://www.cnblogs.com/1996V/p/9037603.html 什么是.NET?什么是.NET ...

  5. Kestrel服务器

    Kestrel服务器 什么是Kestrel服务器 Kestrel是开源的(GitHub提供的源代码),事件驱动的异步I / O服务器,用于在任何平台上托管ASP.NET应用程序.这是一个监听服务器和一 ...

  6. Ubuntu18.10设置静态IP、DNS、卸载无用软件

    设置静态IP root@xueji:~# vim /etc/network/interfaces # interfaces() ) and ifdown() auto lo iface lo inet ...

  7. html select change事件触发

    做小组内使用的一个简单工具,其中要实现的一个小功能是当某个下拉菜单的选择值改变时触发另一表单元素的属性变化.自然的想到使用select表单元素的onchange事件. 下拉菜单部分的代码如下: < ...

  8. CI框架自带的验证工具及汉化

    本人自己还是很喜欢CI框架自带的验证工具的,使用方式如下: /** *@blog<http://www.phpddt.com> */ public function do_login() ...

  9. 解决Linux下SSH等终端乱码问题

    1.vi /etc/sysconfig/i18n Centos5.5原来内容是: //LANG="en_US.UTF-8" //SYSFONT="latarcyrheb- ...

  10. rest_framework组件之认证,权限,访问频率

    共用的models from django.db import models # Create your models here. class User(models.Model): username ...