$ go build -ldflags "-s -w" -o small helloworld.go
2011-06-15 07:10 1,081,344 hello
2011-06-15 07:10 768,000 small
另外还可以使用 upx 压缩 go 二进制文件
2204Go 语言环境安装
windows下 设置GOROOT GOPATH
在系统属性-》高级-》系统变量 添加 GOROOT 比如 F:\GOROOT
在系统属性-》高级-》用户变量 添加 GOPATH 比如 F:\Administrator\go
2203Go 语言环境安装
珍惜今天,珍惜现在 谁知道明天和意外 哪一个先来
2202go-passing-pointers-to-functions
以下是一个更更简洁的变量交换实例:
package main
import "fmt"
func main() {
/* 定义局部变量 */
var a int = 100
var b int= 200
a, b = b, a
fmt.Printf("交换后 a 的值 : %d\n", a )
fmt.Printf("交换后 b 的值 : %d\n", b )
}
2201go-passing-pointers-to-functions
以下是一个更简洁的变量交换实例:
package main
import "fmt"
func main() {
/* 定义局部变量 */
var a int = 100
var b int= 200
swap(&a, &b);
fmt.Printf("交换后 a 的值 : %d\n", a )
fmt.Printf("交换后 b 的值 : %d\n", b )
}
/* 交换函数这样写更加简洁,也是 go 语言的特性,可以用下,c++ 和 c# 是不能这么干的 */
func swap(x *int, y *int){
*x, *y = *y, *x
}
2205Go 语言教程
压缩Go 可执行文件大小
查看 go 连接的参数
$ go tool link -h
可以看到
usage: link [options] main.o
-s disable symbol table # 去掉符号表
-w disable DWARF generation # 去掉调试信息
这二选项可以减少程序文件体积
同一个 hello.go 文件
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
二个不同的编译 生成的文件大小相差很大
$ go build -o hello helloworld.go
$ go build -ldflags "-s -w" -o small helloworld.go
2011-06-15 07:10 1,081,344 hello
2011-06-15 07:10 768,000 small
另外还可以使用 upx 压缩 go 二进制文件
2204Go 语言环境安装
windows下 设置GOROOT GOPATH
在系统属性-》高级-》系统变量 添加 GOROOT 比如 F:\GOROOT
在系统属性-》高级-》用户变量 添加 GOPATH 比如 F:\Administrator\go2203Go 语言环境安装
珍惜今天,珍惜现在 谁知道明天和意外 哪一个先来
2202go-passing-pointers-to-functions
以下是一个更更简洁的变量交换实例:
2201go-passing-pointers-to-functions
以下是一个更简洁的变量交换实例: