golang 基础
Alex 7/16/2020 golang
# 语法
文档地址:https://golang.org/doc/
包文档:https://golang.org/pkg/
# 运行 go 项目
使用 go run
$ cat main.go
package main
func main() {
println("hello world")
}
$ go run main.go
hello world
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 编译 go 项目
使用 go build
$ cat main.go
package main
func main() {
println("hello world")
}
$ go build -a -v -o main main.go
runtime/internal/sys
runtime/internal/atomic
internal/cpu
runtime/internal/math
internal/bytealg
runtime
command-line-arguments
$ ./main
hello world
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
编译器选项
go build -ldflags "-w -s -X main.Version=${VERSION} -X main.Build=${BUILD}"
1
选项 | 作用 |
---|---|
-w | 去掉调试信息,无法使用gdb调试二进制文件了 |
-s | 去掉符号表,panic时候的不展示任何文件名/行号 |
-X | 设置包中的变量值,其值来自环境变量 |
# 其它编译参数
参数 | 作用 |
---|---|
-v | 编译时显示包名 |
-p n | 开启并发编译,默认情况下该值为 CPU 逻辑核数 |
-a | 强制重新构建 |
-n | 打印编译时会用到的所有命令,但不真正执行 |
-x | 打印编译时会用到的所有命令 |
-race | 开启竞态检测 |