1. Golang 环境变量和项目结构

常用

export GO_HOME=/opt/modules/go
export GOPATH=/home/user/go

$GO_HOME/bin:$GOPATH/bin

1.1. 为什么我使用 go build 命令没有没有报错,也生成二进制文件

package main

1.2. go 项目目录结构

GOPATHbinpkgsrc
binpkgsrc
binpkggo installsrc
pkgpkgpkgpkg.a
srcsrc
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 
go_projectgo build
/Users/charles/go_project/src/go_dev/01/hello/hello.go
hello.go/Users/charles/go_project
go build go_dev/01/hello
srchellohello.go

1.3. 查看 Golang 的环境变量

$ go env

GOARCH="amd64"
GOBIN=""GOCACHE="/home/user/.cache/go-build"GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/user/go"
GORACE=""GOROOT="/opt/modules/go"GOTMPDIR=""
GOTOOLDIR="/opt/modules/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
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"GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build559954063=/tmp/go-build -gno-record-gcc-switches"

1.3.1. 常用的 Golang 环境变量

GOROOTGOPATHGOPATH.ago rungo installGOBIN
$GOPATH/bin

1.4. Golang 开发常用命令

1.4.1. go install

go installbin
pkg.a
go get
go get
go install

1.4.3. More

Golang 标准命令详解