系列文章目录
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
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
总结
提示:这里对文章进行总结:
略