golang项目打包,跨平台打包,压缩可执行文件。

go build

go build
go build main.go
go build -o output main.go,指定生成的文件名

跨平台打包

windows

GOOS=windows GOARCH=amd64 go build -o app001

mac

GOOS=darwin GOARCH=amd64 go build -o app001

linux

GOOS=linux GOARCH=amd64 go build -o app001

压缩可执行文件

main.go代码

1
2
3
4
5
6
7
package main

import "log"

func main() {
	log.Println("this is lab002")
}
  • go build -o lab002_1 main.go,最原始打包
  • go build -o lab002_2 -ldflags "-w -s" main.go,加上ldflags参数,-s去掉了符号表信息,-w去掉了调试信息,之后不能使用gdb调试
  • upx lab002_2 -o lab002_3,使用upx压缩lab002
  • upx lab002_2 --brute -o lab002_4,使用brute模式压缩

go build