2.go-编译

系列文章目录

GO-异常处理

文章目录

  • 系列文章目录
  • 前言
  • 一、golang 编译与运行
  • 二、运行 go run 调试
  • 三、运行 交叉编译
  • 四、 交叉编译实例
  • windows 编译linux 与Mac可执行程序
  • linux 编译Mac 与windows
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

go 语言的编译方式一共有两种,go build 或go run, 在调试的时候最好使用go run 在运行期间输出结果。


提示:以下是本篇文章正文内容,下面案例可供参考

一、golang 编译与运行

  1. 编译当前目录
go build  或 go build .
  1. 编译指定文件或目录
# 编译main 文件,将会生成可执行文件
go build ./main.go

# 编译指定文件目录P, 不会产生编译文件,仅进行编译检查
go build ./pl

  1. main 包有多个文件的情况,指定文件编译main 包
# 编译时必须指定main 包的所有文件

go build ./main.go   ./hello.go
  1. 编译时指定编译结果输出
go build -o ./out/app   ./main.go ./hello.go

二、运行 go run 调试

  1. 直接通过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

总结

提示:这里对文章进行总结:

你可能感兴趣的:(GO,golang,linux)