zoukankan      html  css  js  c++  java
  • 搞明白GOROOT,GOPATH,GOBIN,project目录

    我们接下来一个一个来看关于Go语言中的三个目录的详细解释
    先通过go env查看go的环境变量(我这里是mac的环境,所以可能和你的不同)

    复制代码
    localhost:~ zhaofan$ go env
    GOARCH="amd64"
    GOBIN=""
    GOEXE=""
    GOHOSTARCH="amd64"
    GOHOSTOS="darwin"
    GOOS="darwin"
    GOPATH="/Users/zhaofan/go_project"
    GORACE=""
    GOROOT="/usr/local/Cellar/go/1.9.2/libexec"
    GOTOOLDIR="/usr/local/Cellar/go/1.9.2/libexec/pkg/tool/darwin_amd64"
    GCCGO="gccgo"
    CC="clang"
    GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/b6/mc1c40c91cld67ps963_r16h0000gn/T/go-build539393745=/tmp/go-build -gno-record-gcc-switches -fno-common"
    CXX="clang++"
    CGO_ENABLED="1"
    CGO_CFLAGS="-g -O2"
    CGO_CPPFLAGS=""
    CGO_CXXFLAGS="-g -O2"
    CGO_FFLAGS="-g -O2"
    CGO_LDFLAGS="-g -O2"
    PKG_CONFIG="pkg-config"
    localhost:~ zhaofan$
    复制代码

    GOROOT

    其实就是golang 的安装路径
    当你安装好golang之后其实这个就已经有了

    GOPATH

    go命令依赖的一个重要环境变量:$GOPATH

    其实可以把这个目录理解为工作目录,我个人定义的目录是:
    GOPATH="/Users/zhaofan/go_project"
    当然这个目录是需要添加到环境变量中的

    go_project // (go_project为GOPATH目录)
    -- bin // golang编译可执行文件存放路径
    -- pkg // golang编译包时,生成的.a文件存放路径
    -- src // 源码路径。按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。

    GOBIN

    首先先看一下我的目录结构:

    我们通常是在go_project目录下执行go build,例如:
    /Users/zhaofan/go_project/src/go_dev/01/hello/hello.go
    我们现在要编译hello.go文件,我只需要切换到
    /Users/zhaofan/go_project目录中,然后执行:
    go build go_dev/01/hello
    golang 会自动去src下找hello目录,因为我的hello.go中代码的开通导入了packag main包,所以可以编译成可执行文件,但是这样默认在当前目录下生成可执行文件,虽然可以指定目录,但是还是感觉不是非常方便

    所以还有两个非常好用的命令:go get 和go install

    go get

    go get会做两件事:
    1. 从远程下载需要用到的包
    2. 执行go install

    go install

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

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

    复制代码
    go_project     // go_project为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 
    复制代码
    所有的努力都值得期许,每一份梦想都应该灌溉!
  • 相关阅读:
    Linux 重启命令
    Linux TCP连接数修改
    Linux 命令--查看物理CPU个数、核数、逻辑CPU个数
    keepalived配置文件
    keepalived 安装配置
    linux下keepalived 安装配置
    redis主从切换的集群管理
    CentOS_5.6下使用cmake编译MySQL_5.5.11
    cas错误:org.jasig.cas.client.validation.TicketValidationException: No principal was found in the response from the CAS server.
    完美实现在同一个页面中使用不同样式的artDialog样式
  • 原文地址:https://www.cnblogs.com/qiaoyanlin/p/9602800.html
Copyright © 2011-2022 走看看