为了账号安全,请及时绑定邮箱和手机立即绑定

在一个文件夹中“构建”多个程序

在一个文件夹中“构建”多个程序

Go
aluckdog 2023-05-15 15:18:14
我有functions/hello.go文件运行结果会在同一目录中go build创建新的二进制文件。functions我想在functions目录中有两个源文件:hello.go并且hello2.go能够运行go build,这会产生两个二进制文件:hello和hello2。如何做到这一点?
查看完整描述

2 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

Go 包按目录划分范围。这意味着您在一个目录中只能有一个包,因此最多只能有一个“主”包。你想做的事根本不可能*

您需要创建子目录:

functions/hello/hello.go
functions/hello2/hello2.go

然后你可以这样构建它们:

go build functions/...

*从技术上讲,您可以通过完全滥用 go 工具链,并指定要编译的特定 go 包来完成您想要的组织,该包优先于目录中的其他文件。这只适用于最小的程序(基本上,一个包含在单个 .go 文件中的程序,或少量可管理的 .go 文件)这将需要多个命令,而且这永远不应该完成,所以'我什至不打算解释如何做到这一点。简单地说:永远不要这样做!


查看完整回答
反对 回复 2023-05-15
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

你可以有 2 个单独的包,都带有mainfunc,然后在两个目录中发出这个命令: GOBIN={compiled-dir} go install



查看完整回答
反对 回复 2023-05-15
  • 2 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信