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

总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: 错误提示中提到了一个未知的标志"--go-grpc",这可能是因为你的命令中使用了错误的标志。正确的命令应该是"protoc --go-grpc_out=. --go-grpc_opt=paths=source_relative user.proto"。请注意,标志"--go-grpc_out"和"--go-grpc_opt"之间应该有一个下划线"_",而不是一个空格。另外,你还需要确保你已经安装了正确的go协议编译器插件。你可以使用以下命令重新安装插件:"$ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest"和"$ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest"。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [使用protoc编译grpc问题记录(--go_out: protoc-gen-go: plugins are not supported;)](https://blog.csdn.net/m0_57777971/article/details/127864341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [protoc-gen-go: plugin are not supported;use ‘protoc --go-grpc_out=...‘ to generate gRPC 的问题](https://blog.csdn.net/weixin_42875684/article/details/125652895)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值