2.go-编译

简介: 2.go-编译

系列文章目录


GO-异常处理


前言


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

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

总结


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

目录
相关文章
|
11月前
|
编译器 测试技术 Go
Go语言的自给自足:编译自身的神奇之旅
Go语言的自给自足:编译自身的神奇之旅
|
Go 区块链
go 编译 自定义 图标 ico文件
go 编译 自定义 图标 ico文件
134 0
|
Go Windows
Go 交叉编译 跨平台编译(windows系统跨平台编译)
Go 交叉编译 跨平台编译(windows系统跨平台编译)
153 0
|
7月前
|
监控 Java Go
编译时插桩,Go应用监控的最佳选择
本文讲解了阿里云编译器团队和可观测团队为了实现Go应用监控选择编译时插桩的原因,同时还介绍了其他的监控方案以及它们的优缺点。
809 113
|
8月前
|
Go
go语言编译时常量表达式
【10月更文挑战第20天】
74 3
|
8月前
|
编译器 Go
go语言编译选项
【10月更文挑战第17天】
137 5
|
8月前
|
Go
go语言使用常量和编译时常量表达式
【10月更文挑战第19天】
86 2
|
自然语言处理 编译器 Linux
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
1056 0
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
|
11月前
|
编译器 Go 开发者
Go 在编译时评估隐式类型的优点详解
【8月更文挑战第31天】
68 0
|
自然语言处理 安全 Java
速通Go语言编译过程
Go语言编译过程详解:从词法分析(生成token)到句法分析(构建语法树),再到语义分析(类型检查、推断、匹配及函数内联)、生成中间码(SSA)和汇编码。最后,通过链接生成可执行文件。作者sharkchili,CSDN Java博客专家,分享技术细节,邀请读者加入交流群。
94 2