zoukankan      html  css  js  c++  java
  • go开发环境vs的搭建

    一、安装go

       a、打开网址https://golang.org/dl/

       b、根据操作系统选择对应的安装包

       c、 点击安装包进行安装(linux直接解压)

       d、linux设置环境变量    

        1. export GOROOT=$PATH:/path/to/go

        2. export PATH=$PATH:$GOROOT/bin/

        3. export GOPATH=/home/user/project/go

      e. window设置环境变量  

    安装完golang后会创建GOROOT环境变量D:golangGO,添加D:golangGOin会自动添加到path环境变量中。

    创建D:golangGOGOPATH文件的作用是告诉Go命令和其他相关工具,在那里去找到安装在你系统上的Go包。src(此目录用来存放项目源代码) ,pkg(此目录用来存放项目编译后的生成文件) ,bin(此目录用来存放编译后生成的可执行文件)。

    添加GOPATH环境变量D:golangGOGOPATH,添加path中的D:golangGOGOPATHin环境变量。

    安装成功后启动:cmd中输入:go version 查看版本信息是否安装成功。

    二、开发环境搭建

      1、IDE搭建(vscode)

      a. 打开网址:https://code.visualstudio.com/

      b. 根据操作系统选择对应的安装包

      c. 点击安装包进行安装(linux直接解压)

      d. 选择查看-》扩展-》搜索go,安装go扩展

      用vscode打开src文件夹vscode添加文件settings.json:填写如下配置

        

    "go.buildOnSave": true,
        "go.lintOnSave": true,
        "go.vetOnSave": true,
        "go.buildTags": "",
        "go.buildFlags": [],
        "go.lintFlags": [],
        "go.vetFlags": [],
        "go.coverOnSave": false,
        "go.useCodeSnippetsOnFunctionSuggest": false,
        "go.formatOnSave": true,
        "go.formatTool": "goreturns",
        "go.goroot": "D:/golang/Go",  // 默认MAC下/usr/local/go, WIN下C:/Go
        "go.gopath": "D:/golang/Go/GOPATH",    // 把需要的插件和工具安装到这里,路径可以自己定
        "go.gocodeAutoBuild": false
    View Code

             e. 提示安装go插件,选择安装install all

    比如 VSCode提示安装的插件下就会安装到GOPATH这里:  

    这款插件的特性包括:

    • Colorization 代码着彩色

    • Completion Lists 代码自动完成(使用gocode)

    • Snippets  代码片段

    • Quick Info 快速提示信息(使用godef)

    • Goto Definition 跳转到定义(使用godef)

    • Find References  搜索参考引用(使用go-find-references)

    • File outline 文件大纲(使用go-outline)

    • Workspace symbol search 工作区符号搜索(使用 go-symbols)

    • Rename 重命名(使用gorename)

    • Build-on-save 保存构建(使用go build和go test)

    • Format 代码格式化(使用goreturns或goimports或gofmt)

    • Add Imports  添加引用(使用 gopkgs)

    • Debugging 调试代码(使用delve)

    其实执行的是下面9个命令

    go get -u -v github.com/nsf/gocode
    go get -u -v github.com/rogpeppe/godef
    go get -u -v github.com/golang/lint/golint
    go get -u -v github.com/lukehoban/go-find-references
    go get -u -v github.com/lukehoban/go-outline
    go get -u -v sourcegraph.com/sqs/goreturns
    go get -u -v golang.org/x/tools/cmd/gorename
    go get -u -v github.com/tpng/gopkgs
    go get -u -v github.com/newhook/go-symbols
    go get -u -v golang.org/x/tools/cmd/guru

    标红的是因为下载执行不成功,下面是解决的办法。

    md D:golangGoGOPATHsrcgolang.orgx

    cd D:golangGoGOPATHsrcgolang.orgx

    git clone https://github.com/golang/tools.git tools

    cd D:golangGoGOPATHsrcgithub.com ewhook

    git clone https://github.com/newhook/go-symbols

    cd D:golangGoGOPATHsrcsourcegraph.com

    git clone https://github.com/sqs

    go get -u -v github.com/golang/lint/golint
    go get -u -v sourcegraph.com/sqs/goreturns
    go get -u -v golang.org/x/tools/cmd/gorename
    go get -u -v github.com/newhook/go-symbols
    go get -u -v golang.org/x/tools/cmd/guru

    3. 调试工具delve安装

    a.打开网址:https://github.com/derekparker/delve/tree/master/Documentation/installation

    b.mac:   brew install go-delve/delve/delve

    c.linux&windows:  go get github.com/derekparker/delve/cmd/dlv

    每一个程序只能有一个main包,带有main()函数,不能重复定义。

    只有包名是package main、带有main()函数才是可执行文件,其他的都是库,编译后生成.a文件。

    package main
    //包名  
    import(
        "fmt"
    )
    
    func main() {
        fmt.Println("hello world")
    }

    4、GOPATH工作区

    a.所有项目都需要放到GOPATH/src下面

    b.GOPATH路径最好只设置一个

    5、基本命令

       go test 执行单元测试或压力测试

       go env 显示go相关的环境变量

       go fmt 格式化源代码

       go run 快速执行go文件,就想执行脚本一样

       go build编译程序,生成二进制可执行额那件

       go install 安装可执行文件

    如果在环境变量中设置GOOS=linux,go build编译,编译文件放到linu平台上运行。

      

    参考:

    https://www.cnblogs.com/mubing/p/5820038.html
    http://blog.csdn.net/u010019717/article/details/52138833
    http://www.bubuko.com/infodetail-1922278.html
    https://www.cnblogs.com/breg/p/6890832.html?utm_source=itdadao&utm_medium=referral

            

  • 相关阅读:
    进程和线程的区别?什么时候用进程?什么时候用线程?----看到好的复制到自己的园子里哈哈
    HTTPS详细讲解一篇就够了
    MySQL存储过程
    Spring注入全局的HttpServletRequest
    Java进阶必备
    Java8新特性
    java.time包常用类API学习记录
    Maven常用插件
    maven-dependency-versions-check-plugin, Maven 插件查找依赖版本冲突
    Jackson自定义注解
  • 原文地址:https://www.cnblogs.com/domestique/p/7900237.html
Copyright © 2011-2022 走看看