调试运行
复制下面代码到hello.go文件中
package main
func main() {
println("Hello world")
}
使用
go run hello.go
运行测试代码
调试运行会生成一个本地临时文件,运行完毕之后就会自动删除
编译成二进制文件
编译成二进制文件需要用到
go build hello.go
windows下运行go build
命令会在目录下生成一个二进制可执行文件
注意: go build如果不加文件名,默认会编译文件夹下所有的.go文件,如果编译的文件没有主函数,那么生成的就不是一个可执行文件
交叉编译
在日常工作中,线上机器一般是linux。开发机有可能是Windows,MacOs。这时我们build
的代码在线上机可能就没办法运行了。go支持交叉编译, 在一个平台上生成然后再另外一个平台去执行。具体命令如下:
要去linux下执行
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
要去Mac下执行
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
要去win下执行
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
参数说明
参数 | 参数含义 |
---|---|
CGO_ENABLED | CGO_ENABLED 表示CGO禁用,交叉编译中不能使用CGO的 |
GOOS | 目标平台 mac 对应 darwin , linux 对应 linux , windows 对应 windows |
GOARCH | 目标平台的体系架构【386,amd64,arm】, 目前市面上的个人电脑一般都是amd64架构的 |
- 386 也称 x86 对应 32位操作系统
- amd64 也称 x64 对应 64位操作系统
- arm 这种架构一般用于嵌入式开发。 比如 Android , IOS , Win mobile , TIZEN 等