一、下载安装(Ubuntu16.04)

  1.下载地址:https://golang.google.cn/dl/

  2.下载Linux版本的安装包go1.10.3.linux-amd64.tar.gz并复制到/usr/local下并解压

tar -xzf go1.8.linux-amd64.tar.gz -C /usr/local
[jun@master ~]$ cd /home/jun/
[jun@master ~]$ cd go/
[jun@master go]$ ls -l
total
drwxr-xr-x. jun jun Jun : api
-rw-r--r--. jun jun Jun : AUTHORS
drwxr-xr-x. jun jun Jun : bin
drwxr-xr-x. jun jun Jun : blog
-rw-r--r--. jun jun Jun : CONTRIBUTING.md
-rw-r--r--. jun jun Jun : CONTRIBUTORS
drwxr-xr-x. jun jun Jun : doc
-rw-r--r--. jun jun Jun : favicon.ico
drwxr-xr-x. jun jun Jun : lib
-rw-r--r--. jun jun Jun : LICENSE
drwxr-xr-x. jun jun Jun : misc
-rw-r--r--. jun jun Jun : PATENTS
drwxr-xr-x. jun jun Jun : pkg
-rw-r--r--. jun jun Jun : README.md
-rw-r--r--. jun jun Jun : robots.txt
drwxr-xr-x. jun jun Jun : src
drwxr-xr-x. jun jun Jun : test
-rw-r--r--. jun jun Jun : VERSION

  3.增加Linux环境变量并source生效

  (1)执行编写环境变量命令

vim /etc/profile

  (2)增加下面的配置

export GOPATH=/home/golang/gopath
export GOROOT=/usr/local/go
export GOARCH=386
export GOOS=linux
export GOTOOLS=$GOROOT/pkg/tool
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

  (3)source环境变量使之生效

source /etc/profile

  4.测试是否安装成功

  (1)在任意路径执行go version

  (2)新建go文件

package main
import "fmt"
func main(){
fmt.Println("Hello,World!")
}

  (3)执行go run命令运行go文件

root@bigjun:/home/www/golang/gopath/src# ls
hello.go
root@bigjun:/home/www/golang/gopath/src# go run hello.go
Hello,World!

  (4)执行go build命令生成可执行文件

root@bigjun:/home/www/golang/gopath/src# ls
hello.go
root@bigjun:/home/www/golang/gopath/src# go build hello.go
root@bigjun:/home/www/golang/gopath/src# ls
hello hello.go
root@bigjun:/home/www/golang/gopath/src# ./hello
Hello,World!

  5.建立$GOPATH文件夹

root@bigjun:/usr/local/go# mkdir -p /home/golang/gopath
root@bigjun:/usr/local/go# cd /home/golang/gopath/
root@bigjun:/home/golang/gopath# mkdir bin
root@bigjun:/home/golang/gopath# mkdir src
root@bigjun:/home/golang/gopath# mkdir pkg
root@bigjun:/home/golang/gopath# tree
.
├── bin
├── pkg
└── src directories, files

  其中三个文件夹的作用分别是

  • bin目录主要存放可执行文件;
  • pkg目录存放编译好的库文件, 主要是*.a文件;
  • src目录下主要存放go的源文件

  二、编译应用

  1.首先进入$GOPATH目录下的src下新建一个项目

root@bigjun:~# cd $GOPATH/src
root@bigjun:/home/golang/gopath/src# mkdir mymath

  2.进入到mymath下新建sqrt.go文件,注意,一般package的名称和工程目录名保持一致

package mymath

func Sqrt(x float64) float64 {
z := 0.0
for i := ; i < ; i++ {
z -= (z*z - x) / ( * x)
}
return z
}

  3.已经建立了自己的应用包,编译安装两种方式:

  • 只要进入对应的应用包目录,然后执行go install
  • 在任意的目录执行如下代码go install mymath
root@bigjun:/home/golang/gopath/src/mymath# go install

  然后,在pkg文件夹下生成了.a应用包

root@bigjun:/home/golang/gopath# tree
.
├── bin
├── pkg
│   └── linux_amd64
│   └── mymath.a
└── src
└── mymath
└── sqrt.go directories, files

  4.新建一个应用程序来调用这个包

root@bigjun:/home/golang/gopath# cd src/
root@bigjun:/home/golang/gopath/src# mkdir mathapp
root@bigjun:/home/golang/gopath/src# cd mathapp/
root@bigjun:/home/golang/gopath/src/mathapp# vim main.go

  5.编写main.go代码

package main

import (
"mymath"
"fmt"
) func main() {
fmt.Printf("Hello, world. Sqrt(2) = %v\n", mymath.Sqrt())
}

  6.编译并执行main.go

root@bigjun:/home/golang/gopath/src/mathapp# go build main.go
root@bigjun:/home/golang/gopath/src/mathapp# ls
main main.go
root@bigjun:/home/golang/gopath/src/mathapp# ./main
Hello, world. Sqrt() = 1.414213562373095

  7.将mathapp这个项目也编译成应用包

root@bigjun:/home/golang/gopath/src/mathapp# go install

  然后会在/home/golang/gopath/bin下生成一个linux_386文件,里面有一个可执行文件mathapp

root@bigjun:/home/golang/gopath/bin/linux_386# ./mathapp
Hello, world. Sqrt() = 1.414213562373095

Golang的安装和编译的更多相关文章

  1. 在Ubuntu安装go编译环境

    在Ubuntu安装go编译环境 好记性不如烂笔头,所以趁热打铁记录下golang编译环境的安装过程. 首先下载一些依赖包: sudo apt-get install bison ed gawk gcc ...

  2. golang环境安装和配置

    go中环境安装 前言 最近在工作中需要新配置go环境,每次都要去网上查找教程,浪费时间,那么就自己总结下. 下载安装 linuxGolang官网下载地址:https://golang.org/dl/1 ...

  3. [转载] Golang交叉编译(跨平台编译)简述

    一.何为交叉编译 简单地说,就是在一个平台上生成另一个平台上的可执行代码.同一个体系结构可以运行不同的操作系统:同样,同一个操作系统也可以在不同的体系结构上运行. 二.交叉编译前的准备 本文只介绍Wi ...

  4. golang的安装

    整理了一下,网上关于golang的安装有三种方式(注明一下,我的环境为CentOS-6.x, 64bit) 方式一:yum安装(最简单) rpm -Uvh http://dl.fedoraprojec ...

  5. 安装maven编译环境

    安装maven编译环境 1.默认已经装好yum并配置好yum源(推荐使用163yum源) 2.安装JDK 3.安装相关依赖环境(root用户登陆) yum install -y cmake lzo-d ...

  6. CentOS离线安装GCC编译环境

    gcc编译环境rpm下载 安装相关的rpm包,具体版本可能随时间变化而变化,可以去以下地址下载: 重庆大学镜像:http://b.mirrors.lanunion.org/CentOS/中国科学技术大 ...

  7. windows平台下安装、编译、使用mongodb C++ driver

    本博客将记录在Win8.1 ,VS2013环境下编译.配置mongodb C++ driver的流程. 1.下载预备 下载Boost:http://sourceforge.net/projects/b ...

  8. eclipse安装反编译工具

    身为一名程序员来说,日常最常做的就是编写代码和查看别人写好的源代码了,有时候打开别人写的class文件发现根本不是自己想要的,所以给大家介绍一种eclipse中反编译class文件的工具. 第一步:下 ...

  9. [转]Caffe在Linux下的安装,编译,实验

    Caffe在Linux下的安装,编译,实验  原文地址:http://www.cnblogs.com/evansyang/p/6150118.html 第一部分:Caffe 简介 caffe是有伯克利 ...

随机推荐

  1. CF #579 (Div. 3) E.Boxers

    E.Boxers time limit per test2 seconds memory limit per test256 megabytes inputstdin outputstdout The ...

  2. Java 内存模型与内存结构

    Java内存模型 一.简介 Java内存模型(JMM)主要是为了规定线程和内存之间的一些关系:根据JMM的设计,系统存在一个主内存(Main Memory)和工作内存(Work Memory),Jav ...

  3. Ansible常用模块基本操作

    Ansible是一个系列文章,我会尽量以通俗易懂.诙谐幽默的总结方式给大家呈现这些枯燥的知识点,让学习变的有趣一些. 前言 对于任何一个框架,一个应用,为了更便于推广,便于使用,便于商业化,都会顺便提 ...

  4. 【JavaScript】使用纯JS实现多张图片的懒加载(附源码)

    一.效果图如下 上面的效果图,效果需求如下 1.还没加载图片的时候,默认显示加载图片背景图 2.刚开始进入页面,自动加载第一屏幕的图片 3.下拉界面,当一张图片容器完全显露出屏幕,即刻加载图片,替换背 ...

  5. 利用 SASS 简化 `nth-child` 样式的生成

    考察如下的 HTML 片段,通过 CSS 的 nth-child() 伪选择器实现列表的颜色循环,比如每三个一次循环. <ul> <li>1</li> <li ...

  6. ES6——新增数据结构Set与Map的用法

    ES6 提供了新的数据结构 Set以及Map,下面我们来一一讲解. 一.Set 特性 似于数组,但它的一大特性就是所有元素都是唯一的,没有重复. 我们可以利用这一唯一特性进行数组的去重工作. 1.单一 ...

  7. .NET Core 3.0中IAsyncEnumerable<T>有什么大不了的?

    .NET Core 3.0和C# 8.0最激动人心的特性之一就是IAsyncEnumerable<T>(也就是async流).但它有什么特别之处呢?我们现在可以用它做哪些以前不可能做到的事 ...

  8. 树莓派(4B)Linux + .Net Core嵌入式-HelloWorld(二)

    一.新建.Net Core项目 新建.Net Core3.0的控制台应用,代码如下 namespace Demo { class Program { static void Main(string[] ...

  9. windows自带的netsh的使用

    0x01netsh简介 自Windows XP开始,Windows中就内置网络端口转发的功能.任何传入到本地端口的TCP连接(IPv4或IPv6)都可以被重定向到另一个本地端口,或远程计算机上的端口, ...

  10. Hadoop实战1:MapR在ubuntu集群中的安装

    由于机器学习算法在处理大数据处理的时候在所难免的会效率降低,公司需要搭建hadoop集群,最后采用了商业版的Hadoop2(MapR). 官网: http://doc.mapr.com/display ...