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

总结


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

目录
相关文章
|
4月前
|
编译器 测试技术 Go
Go语言的自给自足:编译自身的神奇之旅
Go语言的自给自足:编译自身的神奇之旅
|
Go 区块链
go 编译 自定义 图标 ico文件
go 编译 自定义 图标 ico文件
90 0
|
Go Windows
Go 交叉编译 跨平台编译(windows系统跨平台编译)
Go 交叉编译 跨平台编译(windows系统跨平台编译)
91 0
|
1月前
|
Go
go语言编译时常量表达式
【10月更文挑战第20天】
31 3
|
1月前
|
编译器 Go
go语言编译选项
【10月更文挑战第17天】
36 5
|
1月前
|
Go
go语言使用常量和编译时常量表达式
【10月更文挑战第19天】
25 2
|
4月前
|
编译器 Go 开发者
Go 在编译时评估隐式类型的优点详解
【8月更文挑战第31天】
36 0
|
7月前
|
自然语言处理 安全 Java
速通Go语言编译过程
Go语言编译过程详解:从词法分析(生成token)到句法分析(构建语法树),再到语义分析(类型检查、推断、匹配及函数内联)、生成中间码(SSA)和汇编码。最后,通过链接生成可执行文件。作者sharkchili,CSDN Java博客专家,分享技术细节,邀请读者加入交流群。
56 2
|
6月前
|
缓存 应用服务中间件 Go
Go打包和部署:从编译到运行的全指南
本文介绍了Go语言项目的打包和部署方法,包括使用`go run`、`go build`和`go install`命令进行编译,以及跨平台交叉编译。文章还提到了编译参数如`-x`、`-n`和`-race`等。此外,还讨论了如何利用第三方工具(如go-bindata)打包非Go文件,以及清理编译缓存和压缩二进制文件。最后,文中展示了如何使用supervisor和Docker进行部署,并提供了Nginx的反向代理配置示例。
2309 1
|
自然语言处理 编译器 Linux
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南
856 0
超详细!通晓Go语言编译运行 你需要这篇攻略 | 进阶指南