Go
Go 的环境变量
JavaJAVA_HOMECLASSPATHincludeCMakeLists.txtPath
GoGOROOTGOPATHGOROOTGoJAVA_HOME/binGOPATHGoGOPATHGOPATH
GOPATH 的设计
GOPATH
GOPATHGOPATHGOPATHgo: GOPATH entry is relative; must be absolute path: "...GOPATH:;
unexpected directory layout:
unexpected directory layout:
import path: _/go/src/firstgo
root: /go/src
dir: /go/src/firstgo
expand root: /go
expand dir: /go/src/firstgo
separator: /
GOPATH
~/.profileexport GOPATH=/home/albert/go:/home/albert/WorkSpace/goexport GOPATH=/home/albert/go
GOPATH 的发展
GOPATHGodepGodepGo
GoGo
GOPATH
go modGo
Go 的常用命令
Go
- go env: 打印go的环境信息
- go fmt: 运行gofmt对go代码进行格式化
- go build: 编译包和依赖
- go run: 编译并运行go程序
- go version: 显示go程序的版本
- go help: 打印命令的帮助信息
- go get: 下载并安装包和依赖(-v 显示操作流程的日志及信息;-u 下载丢失的包,但不会更新已经存在的包)
go helpgo help gopath
...
Here's an example directory layout:
GOPATH=/home/user/go
/home/user/go/
src/
foo/
bar/ (go code in package bar)
x.go
quux/ (go code in package main)
y.go
bin/
quux (installed command)
pkg/
linux_amd64/
foo/
bar.a (installed package object)
...
...
go env
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/albert/.cache/go-build"
GOENV="/home/albert/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/albert/WorkSpace/go1/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/albert/WorkSpace/go1"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
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-build602227063=/tmp/go-build -gno-record-gcc-switches"
VSCode Remote 时修改的环境变量不生效
Go~/.profileGOPATH
interactive shellnon-interactive shelllogin shellnon-login shell/etc/profile~/.bash_profile~/.bash_login /~/.profile
zshshell
C++ 的包管理器
GoC++conan
conanpythonPythonpip install conanconanModuleNotFoundError: No module named '_ctypes'yum install libffi-devel -ymake clean && make && make install
总结
GOPATHgo getgo help
有时正确的选择比刻苦努力更加重要,用战术上的勤奋来掩盖战略上的懒惰,其结果只是感动了自己,而不会带我们达到目标。将者,智信仁勇严也~