Go Tools 一些实用技巧


October 8, 2019 51 次阅读 评论

去掉调试信息

$ go build -ldflags "-w -s"

-w 去掉调试信息 -s去掉符号表

将version信息编译进Binary

这里实用-ldflags的-X参数,语法如下:

-X importpath.name=value

使用示例:

package main

import "fmt"

var (
    Version   string
    BuildTime string
    GoVersion string
)

func main() {
    fmt.Printf("%s\n%s\n%s\n", Version, BuildTime, GoVersion)
}
$ go build -ldflags "-X main.Version=1.0.0 -X ''main.BuildTime=`date`'' -X ''main.GoVersion=`go version`''"

编译成功后运行程序结果如下:

➜  gotit ./gotit 
1.0.0
Mon Aug 13 10:17:48 CST 2018
go version go1.11beta3 darwin/amd64

去掉调用栈GOPATH路径

未去掉之前:

panic: error occur

goroutine 1 [running]:
main.main()
        /Users/willsky/gopath/src/gotit/main.go:10 +0x39

使用-gcflags去掉GOPATH路径

➜  gotit go build -gcflags "all=-trimpath=$GOPATH" 

去掉之后:

panic: error occur

goroutine 1 [running]:
main.main()
        src/gotit/main.go:10 +0x39
打赏

标签:go

最后编辑于:2020/01/05 10:46

Willsky
别等错过了才后悔莫及
4文章
6分类
0评论
搜索
随机推荐
标签