我在工作中遇到了一个奇怪的问题。
我有一个项目。在这个项目中有两个包,每个包都在自己的文件夹中。每个文件夹都包含.go属于该包的各种文件。
在文件夹 A 中,如果我说go build -v,我会得到它正在构建的东西的列表。
在文件夹 B 中,如果我说go build -v,我会立即返回而没有输出。
这两个文件夹只包含.go文件,并且没有容易识别的原因为什么它在一个文件夹中构建代码而在另一个文件夹中不构建任何内容。
go version 返回 go version go1.7.5 linux/amd64
我到底怎么知道这里发生了什么?
编辑:澄清评论中提出的问题:
package main两个文件夹中都没有。在文件夹 A 下,在适当的位置go install生成一个.a文件$GOPATH/pkg。在文件夹 B 中,go install没有。它什么都不做,默默地失败。这里出现了一些合法的错误。
来自评论的建议补救措施包括使用-a标志(错误出现在看起来完全无关的事情上)和使用-x标志。该-x标志应该给出极其详细的输出,但它是无用的,输出单行引用构建终止后不存在的临时文件,例如WORK=/tmp/go-build026498757.
您的 gopath 中可能已经安装了最新的版本。这可能意味着您之前执行过类似go install在该特定包上运行的操作,但尚未修改目录中的任何文件。
检查Go的pkg目录中是否有相应的*.a库,看看其修改时间戳是否晚于源文件的时间戳。
| 归档时间: |
|
| 查看次数: |
10404 次 |
| 最近记录: |