zoukankan      html  css  js  c++  java
  • go环境搭建

    一、Linux环境搭建

    本文搭建环境以Linux(Centos 6.5)为例,其他Linux环境相同

    1. 手动安装 Go

    1)下载 Go 发行版

    从官方地址:https://golang.org/dl/ 上下载合适的 二进制发行版 (例如:go1.11.4.linux-amd64.tar.gz):

     1 wget https://dl.google.com/go/go1.11.4.linux-amd64.tar.gz 

    2)提取压缩包

    将压缩包放到 /usr/local 下

     1 tar -xzf go1.11.4.linux-amd64.tar.gz -C /usr/local 

    3)建立软链接

     1 ln -s /usr/local/go/bin/* /usr/bin/ 

    4)检查是否安装成功

    如果输入 go version 显示出go版本号说明安装成功

    [root@centos src]# go version
    go version go1.11.4 linux/amd64

    2. 设置 Go 开发环境

    1)创建工作空间

    我们创建三个目录,分别存放源码,编译生成的库文件,编译生成的二进制文件

    src 目录包含Go的源文件,它们被组织成包(每个目录都对应一个包)
    pkg 目录包含包 编译后生成的库文件
    bin 目录包含包 编译后生成可执行程序。

    路径可以根据自己选择合适工作空间及子目录:

    /home/go_work/src 
    /home/go_work/pkg
    /home/go_work/bin
    

    2)配置环境变量

    编辑环境变量配置文件 vim /etc/profile 在末尾添加下面三行,然后source /etc/profile 让其在本次生效(每次在启动Linux时会自动source该文件),运行 go env 查看go环境变量配置是否正确

    其中,GOROOT Go安装路径;

               GOPATH:工作目录。

    export GOROOT=/usr/local/go
    export GOPATH=/home/go_work/
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    

    3)测试 Go 源码

    构建一个hello world程序来检查Go的安装是否正确,操作如下:

    (1)在上面的 /home/go_work/src 路径下新建目录app(mkdir app) ,然后进入该目录,vim  hello.go 文件,内容如下:

    package main
    
    import "fmt"
    
    func main() {
        fmt.Printf("hello, world
    ")
    }
    

    (2)编译并运行

        第一种方法:编译 hello.go 文件,将编译后的可执行文件(hello,名字可以随便指定)放在 /home/go_work/bin/ 下,并使用绝对路径执行,或者直接执行编译后的 hello 都可以输出 hello, world。

    [root@centos2 src]# go build -o /home/go_work/bin/hello /home/go_work/src/app/
    [root@centos2 src]# /home/go_work/bin/hello
    hello, world
    [root@centos2 src]# hello
    hello, world

      第二种方法:直接执行  go install  项目名称,可以将编译后的二进制文件(app)放在 /home/go_work/bin/ 下。

    [root@centos2 src]# go install /home/go_work/src/app
    [root@centos2 src]# app
    hello, world

     (3)go get 与 go install

         后面在学习Go的过程中经常会用到第三方API,也就需要安装第三方API的库,我们可以使用 go get 很方便的实现第三库的下载安装,在使用go get时需要安装Git。

          go get会做两件事:

    • 从远程下载需要用到的包
    • 执行go install

          go install

    • go install 会生成可执行文件直接放到bin目录下,当然这是有前提的,你编译的是可执行文件,如果是一个普通的包,会被编译生成到 pkg 目录下该文件是.a结尾

    (4)关于go的整体一个开发目录

    go_work     // go_work为GOPATH目录
      -- bin
         -- myApp1  // 编译生成
         -- myApp2  // 编译生成
         -- myApp3  // 编译生成
      -- pkg
      -- src
         -- myApp1     // project1
            -- models
            -- controllers
            -- others
            -- main.go 
         -- myApp2     // project2
            -- models
            -- controllers
            -- others
            -- main.go 
         -- myApp3     // project3
            -- models
            -- controllers
            -- others
            -- main.go

    3. 卸载 GO

    卸载 Go 就是将安装Go的东西全部删除

    (1)删除 go 目录:

    rm -rf /usr/local/go

    (2)删除软连接:

    rm -rf /usr/bin/go
    

    4. 升级 Go

    升级Go就是卸载重装的过程:

    1)卸载 Go

    2)安装 Go

    二、Windows环境搭建

    1.准备工具

    由于墙的存在,很多网址无法下载,推荐https://studygolang.com/dl去下载。当前我下载的是 go version go1.8 windows/amd64,当然也可以下载最新版本,安装的时候一路下一步(也可以改变安装的路径)直到完成。

    2. 配置环境变量

    GOPATH是工作目录(自己设置在 F:goproject)

    GOROOT是安装go的根目录(默认是在C:Goin)

    将上面两个变量添加到系统变量中(%GOROOT%in;%GOPATH%;%GOPATH%in;)

         

    3. 验证安装是否成功

    (1)如果在终端输入go version 显示出 go 版本号说明安装成功

     

    (2)测试 Go 源码

    在 F:goproject 创建三个目录,分别存放源码,编译生成的库文件,编译生成的二进制文件

    src 目录包含Go的源文件,它们被组织成包(每个目录都对应一个包)
    pkg 目录包含包 编译后生成的库文件
    bin 目录包含包 编译后生成可执行程序

    在src目录下创建hello.go 文件,内容如下:

    package main
    
    import "fmt"
    
    func main() {
        fmt.Printf("hello, world
    ")
    }

    (3)运行hello.go

       到 F:goprojectsrc 路径下运行 go run hello.go,如果出现  hello, world 说明 Go已被正确安装

    三、Windows 下Go开发工具

       这里将介绍Sublime Text 3(以下简称Sublime)+ GoSublime + gocode的组合,那么为什么选择这个组合呢?

       1. 安装Package Control 插件

    • 自动化提示代码,如下图所示
    • 保存的时候自动格式化代码,让您编写的代码更加美观,符合Go的标准。
    • 支持项目管理
    • 支持语法高亮
    • Sublime Text 3可免费使用,只是保存次数达到一定数量之后就会提示是否购买,点击取消继续用,和正式注册版本没有任何区别。

      接下来就开始讲如何安装,下载 Sublime,根据自己相应的系统下载相应的版本,然后打开Sublime,打开之后安装 Package Control:Ctrl+` 打开命令行,执行如下代码:

      适用于 Sublime Text 3:

    import  urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())

    适用于 Sublime Text 2:

    import  urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('Please restart Sublime Text to finish installation')

    这个时候重启一下Sublime,可以发现在在菜单栏多了一个如下的栏目,说明Package Control已经安装成功了。

     我用上面的方法安装 Package Control 各种问题,最后选择离线安装:

     首先下载 Package Control 安装包,地址:https://github.com/wbond/package_control,下载并解压缩到  Preferences -> Browse Packages 这目录下,然后重启Sublime,就可以看见安装的 Package Control 包:

       2. 安装 GoSublime 插件

        网上的方法是:打开刚才安装的 Package Control(Preferences -> Package Control)然后输入install,如下,点击红色框,稍等一会会弹出一个框,输入GoSublime,就可以找到要安装的GoSublime 开始安装 GoSublime 包,很遗憾 sublime3 没有这个包(如果你发现有,那就按照这种方法安装):

        我在点击 Package Control 时遇到下面的问题,经过百度说是因为要访问的网站在国外特别慢:

        解决方法如下:

        方案一:在C:WindowsSystem32driversetchosts文件中加入如下代码: (注:就是添加本地域名映射,如果不行就使用方案二)

    50.116.34.243 sublime.wbond.net

        方案二:
        1.下载这个网站的内容并保存到本地:    https://packagecontrol.io/channel_v3.json
        注意sublime的版本,这个文件默认是3.0.0
        关键字为: schema_version

        2.打开配置文件,(添加下载好的文件路径)
        Preferences >Package Settings >Package Control >Settings -User,添加如下内容(注意文本格式,路径换成自己的),实测两种方法都不可行

    "channels": ["D:\SublimePlugin\channel_v3.json" ]

        现在使用离线安装的方法,到地址https://github.com/DisposaBoy/GoSublime.git 下载GoSublime安装包并解压缩到 Preferences -> Browse Packages 这目录下,此时就可以看到GoSublime

       3. 配置 GoSublime

        在Settings - User中(下图)写入环境变量(替换成你自己的GOPATH和GOROOT):

    {
        "env": {
            "GOPATH": "F:\Go\project",
            "GOROOT": "c:\go"
        }
    }

     

       4. 安装 gocode 插件

       gocode是go语言自动补全守护程序。这个程序被称为守护进程是因为它使用了客户端服务器的架构,自动补全的速度特别快,热缓存的自动补全时间仅仅为30ms,几乎感觉不到。

       在命令行中输入:

    go get -u github.com/nsf/gocode

       gocode 将会安装在默认`$GOBIN`,另外建议安装 gotests(生成测试代码),先在 sublime 安装 gotests 插件,再运行:

    go get -u -v github.com/cweill/gotests

       5. 验证是否安装成功

       打开Sublime,在$GOPATH下新建hello.go文件输入下面的代码过程中,看看语法是不是高亮了,输入import是不是自动化提示了,import "fmt"之后,输入fmt.是不是自动化提示有函数了。
    如果已经出现这个提示,那说明你已经安装完成了,并且完成了自动提示。

    package main
    
    import (
        "fmt"
    )
    
    func main()  {
        fmt.printf("Hello world")
    }

        如果没有出现这样的提示,一般就是你的$PATH没有配置正确。你可以打开终端,输入gocode,是不是能够正确运行,如果不行就说明$PATH没有配置正确。(针对XP)有时候在终端能运行成功,但sublime无提示或者编译解码错误,请安装sublime text3和convert utf8插件试一试

    更多IDE安装清查看: https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/01.4.md

        6. 安装CTags插件

        CTags插件是追踪函数工具,比如我们使用fmt.Println("hello")想要看Println在哪定义,可以通过CTags这个插件来实现,如果上面的Package Control正常,可以使用在线的方法安装。

        我是通过离线的方法安装:

        首先下载CTags包并解压到任意位置(比如我放在 D:sublimeCtags):

        地址:https://sourceforge.net/projects/ctags/files/ctags/5.8/ctags58.zip/download?use_mirror=nchc&r=http%3A%2F%2Fctags.sourceforge.net%2F&use_mirror=nchc

        将 Settings-Default 的内容全部复制到Settings-User,然后找到Command行,把解压后的ctags的可执行文件的路径复制到command后的引号内:

        

       如果想要对某个工程中的所有文件进行函数跟踪,比如我的 go_dev 这个工程,将鼠标放到该工程右键点击下面红框内的 CTags:Rebuild Tags,会生成一些相关文件:

       然后将鼠标放到函数所在行,点击右键 Goto Definition 就可以找到函数定义的位置:

       也可以使用命令行:

       在cmd中cd进入源码目录(比如D:/source_code),在该目录下执行下列命令:

    d:source_code>ctags -R -f  .tags

     参考文献:

    • https://blog.csdn.net/q176782/article/details/79050851
    • https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/01.4.md
  • 相关阅读:
    Windows下获取逻辑cpu数量和cpu核数量
    QtScript, QML, Quick1, Quick2, Declarative 之间的关系
    将QT开发的界面程序封装成DLL,在VC中成功调用(必须有消息循环,所以使用了QTWinmigrate,附CSDN可下载的Demo)
    QPixmap的缓冲区
    Qt+QZXing编写识别二维码的程序
    ASP.NET 5:依赖注入
    angularJS之使用指令封装DOM操作
    Windows 10技术布局,谈微软王者归来
    Microsoft dotnetConf 2015
    Net社区虚拟大会
  • 原文地址:https://www.cnblogs.com/xuejiale/p/10258244.html
Copyright © 2011-2022 走看看