Golang语言

BigJunOba · · 358 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

  一、下载安装(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 164 drwxr-xr-x. 2 jun jun 240 Jun 7 08:02 api -rw-r--r--. 1 jun jun 47028 Jun 7 08:02 AUTHORS drwxr-xr-x. 2 jun jun 42 Jun 7 08:12 bin drwxr-xr-x. 4 jun jun 37 Jun 7 08:12 blog -rw-r--r--. 1 jun jun 1339 Jun 7 08:02 CONTRIBUTING.md -rw-r--r--. 1 jun jun 61940 Jun 7 08:02 CONTRIBUTORS drwxr-xr-x. 8 jun jun 4096 Jun 7 08:02 doc -rw-r--r--. 1 jun jun 5686 Jun 7 08:02 favicon.ico drwxr-xr-x. 3 jun jun 18 Jun 7 08:02 lib -rw-r--r--. 1 jun jun 1479 Jun 7 08:02 LICENSE drwxr-xr-x. 14 jun jun 190 Jun 7 08:12 misc -rw-r--r--. 1 jun jun 1303 Jun 7 08:02 PATENTS drwxr-xr-x. 9 jun jun 167 Jun 7 08:12 pkg -rw-r--r--. 1 jun jun 1555 Jun 7 08:02 README.md -rw-r--r--. 1 jun jun 26 Jun 7 08:02 robots.txt drwxr-xr-x. 46 jun jun 4096 Jun 7 08:02 src drwxr-xr-x. 20 jun jun 8192 Jun 7 08:12 test -rw-r--r--. 1 jun jun 8 Jun 7 08:02 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

3 directories, 0 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 := 0; i < 1000; i++ {
        z -= (z*z - x) / (2 * 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

5 directories, 2 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(2))
}

  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(2) = 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(2) = 1.414213562373095

 


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:BigJunOba

查看原文:Golang语言

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:1006366459

358 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传