有没有办法从pkg/
或编译的二进制文件中获取golang版本?我想仅在更改 golang 版本时自动删除$GOPATH/pkg
文件夹。
没
关系,找到了答案
[ `strings $pkg_a_file | grep 'go object' | head -n 1 | cut -f 5 -d ' '` != `go version | cut -f 3 -d ' '` ] &&
rm -rf $GOPATH/pkg
strings $pkg_a_file | grep 'go object' | head -n 1 | cut -f 5 -d ' '
部分将显示类似go1.6.2
pkg_a_file
可以是这样的:
PKG_OS_ARCH=`go version | cut -d ' ' -f 4 | tr '/' '_'`
pkg_a_file=$GOPATH/pkg/$PKG_OS_ARCH/gitlab.com/kokizzu/gokil/A.a
外部参考:http://kokizzu.blogspot.co.id/2016/06/solution-for-golang-slow-compile.html
我找到了以下方法,来检查用于编译二进制文件的 Go lib 版本
$ strings compiled_binary | grep '^go1'
go1.17.4
在 1.9.2 中,grep 命令是
strings $pkg_a_file | grep 'Go cmd/compile'