从编译的二进制文件中获取golang版本



有没有办法从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' 

最新更新