zoukankan      html  css  js  c++  java
  • Golang的安装和编译

      一、下载安装(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
    ", 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
  • 相关阅读:
    基于事件的异步编程
    基于任务的异步编程
    C#异步编程
    C#2.0
    Mac上安装Brew
    PHP中三维数组转二位数组,并且根据某个字段去重
    LNMP环境安装Laravel之后, 除了根目录下可以访问, 其他都是404页面
    LNMP一键安装包安装的mysql远程连接不上的问题
    CentOS7 安装Redis4.0
    CentOS 7 源码包安装SVN及使用
  • 原文地址:https://www.cnblogs.com/BigJunOba/p/9372602.html
Copyright © 2011-2022 走看看