系列文章目录
前言
提示:这里可以添加本文要记录的大概内容:
go 语言的编译方式一共有两种,go build 或go run, 在调试的时候最好使用go run 在运行期间输出结果。
一、golang 编译与运行
- 编译当前目录
go build 或 go build .
- 编译指定文件或目录
# 编译main 文件,将会生成可执行文件 go build ./main.go # 编译指定文件目录P, 不会产生编译文件,仅进行编译检查 go build ./pl
- main 包有多个文件的情况,指定文件编译main 包
# 编译时必须指定main 包的所有文件 go build ./main.go ./hello.go
- 编译时指定编译结果输出
go build -o ./out/app ./main.go ./hello.go
二、运行 go run 调试
- 直接通过go run 运行main 包,即可运行应用程序
#运行应用程序时,指定main 包所有文件 go run ./main.go ./hello.go #运行应用程序时,指定main包所在目录 go run .
三、运行 交叉编译
交叉编译需要修改GOOS,GOARCH,CGO_ENABLED 三个环境变量。
GOOS: 目标平台的操作系统(darwin, freebsd,linux. windows);
GOARCH: 目标平台的体系架构32位还是64位(i386,armd64, arm);
CGO_ENABLED: 是否启用CGO,交叉编译不支持CGO 所以要禁用它;
四、 交叉编译实例
windows 编译linux 与Mac可执行程序
# 设置环境变量 linux $Env:CGO_ENABLED=0;$Env:GOARCH="amd64";$Env:GOOS="linux" #编译,并输出到app 文件 go build -o ./out/app .
# 设置环境变量 Mac $Env:CGO_ENABLED=0;$Env:GOARCH="amd64";$Env:GOOS="darwin" #编译,并输出到app 文件 go build -o ./out/app .
linux 编译Mac 与windows
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 -o ./out/app . CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o ./out/app .ext
总结
提示:这里对文章进行总结:
略