如何将.go文件编译到特定目录,或者将二进制文件添加到gitignore中?

17

现在我只需要运行go build __.go,但是我想知道是否可以将该文件构建在子目录中(例如/bin文件夹)。这将使git忽略二进制文件更加干净,而且现在我不确定是否有其他好的方法,因为我也在努力创建一个工作的gitignore例外规则,而不仅仅是“忽略所有文件,除了.go文件”。

我的当前解决方案是每次构建时命名二进制文件(例如go build -o hello.bin hello.go),但这似乎很费力。


3
可能是 Git:忽略编译过的Google Go文件 的重复问题。 - Sumit
2个回答

21

您可以使用-o标志。

  1. cd到包含main.go文件的目录。

  2. 使用此命令- go build -o DirectoryPath

其中DirectoryPath是您想要创建二进制文件的位置。


2
也可以用另一种方式来完成这个操作(不需要使用 -o 标志):
  1. 切换到你想要存储二进制文件的目录
  2. $go build /path/to/source/file.go
- Dave Fort
我发现你的解决方案非常误导人,我已经指定了DirectoryPath,但是我找不到我指定的目录。它是从$GOROOT还是$GOPATH附加的路径? - Jason Lim Ji Chen

1

不要使用go build *.go,可以按照以下步骤操作:

  1. 设置Go工作区,使用官方的Go资源:如何编写Go代码
  2. 定义GOBINGOPATH环境变量。GOBIN环境变量将指向您想要存储可执行文件的目录。GOPATH环境变量将指向您设置了Go工作区的目录。

现在,不再使用go build *.go,可以使用go install {YourCodePath},其中{YourCodePath}是相对于Go工作区的代码路径。如果构建成功,您可以在由GOBIN指向的目录中找到可执行文件。


除了上面的答案,开发过程中使用"go run _.go"可以避免在源代码路径中生成可执行二进制文件。 - jagadeesh m

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接