golang编译时的参数传递(gcflags, ldflags)
2023-02-11 本文已影响0人
robertzhai
-gcflags
指定编译选项
-ldflags
设置链接选项
查看gcflags所有可用的参数
go tool compile --help
分析go是如何分配内存的, 查看堆逃逸
go run -gcflags "-m -l " main.go
example
type User struct {
name string
}
func getUser() *User {
user := User{name: "golang"}
return &user
}
func main() {
fmt.Println(getUser())
}
output
# command-line-arguments
./main.go:10:2: moved to heap: user
./main.go:16:13: ... argument does not escape
&{golang}
user 逃逸到堆了
链接器
go tool link --help