如果val是命令的结果,命令中可能有空格之类的特殊符号,建议importpath.nmae=val用单引号括起来,如:`importpath.nmae=val` 参考# https://stackoverflow.com/questions/47509272/how-to-set-package-variable-using-ldflags-x-in-golang-build https://2young.2simple.top/article/golang/golang%E5%9C%A8%E7%BC...
LDFLAGS:=-ldflags"-X 'github.com/pubgo/xxx/version.GoVersion=${GoVersion}' \ -X 'github.com/pubgo/xxx/version.BuildTime=${BuildTime}' \ -X 'github.com/pubgo/xxx/version.GoPath=${GOPATH}' \ -X 'github.com/pubgo/xxx/version.CommitID=${CommitID}' \ -X 'github.com/pubgo/xxx...
ldflags -X 变量传递 go 链接器 Linker 是组装二进制文件的工具,我们在执行 go build 命令时,可以通过--ldflags标志设定链接器参数,使用以下语句可查看链接器可选参数。 gobuild --ldflags="--help" 参数很多,但我们感兴趣的是-X $ go build --ldflags="--help" usage: link [options] main.o ... -X...
编译信息写入 使用-ldflags设置编译信息: 代码语言:bash 复制 go build-oapp-service-ldflags\"-X main.buildTime=`date+%Y-%m-%d,%H:%M:%S`-X main.buildVersion=1.0.0 -X 'main.goVersion=$(go version)' -X main.gitCommitID=`gitrev-parse HEAD`" 在上述命令中,通过-ldflags命令的-X参数可以在链...
golang包的使用依赖一个重要的环境变量:GOPATH,无论是自己的代码还是第三方代码,都以GOPATH作为工作...
而不仅仅是包名。例如,如果您的config软件包位于$GOPATH/src/my/package/config,则使用以下命令:...
ldflags 代表链接器标志,用于将标志传递给底层链接器。根据文档:
go build -v -ldflags="-X 'main.Version=v1.0.0' -X 'app/build.User=$(id -u -n)' -X 'app/build.Time=$(date)'" 外层使用双引号,确保传递的flag中的内容即使包含空格也不截断命令; key-value值使用单引号 要改变的变量需要是包级别的string类型变量。不能是const类型 ...
$ cat main.go package main var X = "" func main() { println(X) } $ go run -ldflags='-X main.X=Hello' main.go Hello $ go run -ldflags='"-X main.X=Hello"' main.go $ The-ldflagsof the secondgo runis in invalid format, but the go command silently ignores it and keeps wor...
使用-x 选项可以查看 go 程序编译过程中执行的所有指令。可以看到 golang 编译器已经为 test1.go 创建了 CGO 编译选项 [root@VM-centos ~/cgo_test/golink2]# go build -x test1.goWORK=/tmp/go-build330287398mkdir -p $WORK/b001/cd /root/cgo_test/golink2CGO_LDFLAGS=&apos"-g" "-O2"&apos /...