gpt4 book ai didi

go - 为什么 go build 什么都不做?

转载 作者:IT王子 更新时间:2023-10-29 01:12:17 26 4
gpt4 key购买 nike

我在工作中遇到了一个奇怪的问题。

我有一个项目。在这个项目中有两个包,每个包都在自己的文件夹中。每个文件夹都包含各种 .go 文件,这些文件是该包的一部分。

在文件夹 A 中,如果我说 go build -v,我会得到它正在构建的内容的列表。

在文件夹 B 中,如果我说 go build -v,我会得到一个没有输出的立即返回。

这两个文件夹只包含 .go 文件,并且没有容易识别的原因为什么它在一个文件夹中构建代码而在另一个文件夹中不构建任何内容。

go version 返回go version go1.7.5 linux/amd64

我到底要怎么弄清楚这里发生了什么?

编辑:澄清评论中提出的问题:

两个文件夹中都没有package main。在文件夹 A 中,go install$GOPATH/pkg 下的适当位置生成一个 .a 文件。在文件夹 B 中,go install 没有。它什么都不做,默默地失败。这里确实出了点问题。

从评论中建议的补救措施包括使用 -a 标志(在看起来完全不相关的东西上出错)和使用 -x 标志。 -x 标志本应提供极其详细的输出,但实际上是无用的,它输出单行引用构建终止后不存在的临时文件,例如 WORK=/tmp/go-build026498757.

最佳答案

您提到构建终止后临时目录消失了。

您可以使用 -work 标志保留这些目录。

来自 go help build:

The build flags are shared by the build, clean, get, install, list, run, and test commands:

...

-work
print the name of the temporary work directory and
do not delete it when exiting.

这应该有助于提供更多关于正在发生和未发生的事情的信息和背景。

关于go - 为什么 go build 什么都不做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48591050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com