我修改了GO的源码,比如compiler下的tokens.go,然后调用 go generate 去生成代码,但是不管如何修改tokens.go ,生成的代码始终都是一样的。
我的环境:
- MacOS 10.14.3
- clone源码目录: /Volumes/Samsung_T5/projects/go
- go二进制版本安装在/usr/local/go里,版本为: go version go1.14.4 darwin/amd64
对应的go env如下:
(dev) [w@me syntax]$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/allwefantasy/Library/Caches/go-build"
GOENV="/Users/allwefantasy/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/allwefantasy/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Volumes/Samsung_T5/projects/go/src/cmd/go.mod"
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 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/3n/bhwn_3d14k34bvzm3nyxnv_h0000gn/T/go-build452591877=/tmp/go-build -gno-record-gcc-switches -fno-common"
设置GOROOT为源码目录后会报错。不设置,则修改tokens.go后,比如operator_string.go 每次生成的都是一样。会生成,但是内容一样。
我看了下,和这个issue描述的很相似: