【问题标题】:Go build doesn't build custom libsGo build 不会构建自定义库
【发布时间】:2018-04-12 18:59:40
【问题描述】:

我的工作树是这样的:

/opt/go/src/tb-to-composer/
├── apis
│   └── rtb.go
├── config.yaml
├── jsondef
│   └── structures.go
├── LICENSE.md
├── README.md
├── tb-to-composer
└── thingsToComposer.go

当我在/opt/go/src/tb-to-composer/ 中执行go build 时,即使rtb.gostructures.go 发生了变化,构建也不会重新编译。为了实现构建,我每次更改rtb.gostructures.go 时都需要运行go build -a,这是go build 的预期行为吗?如何在我的包文件夹中只重新编译自定义库而不重新编译整个 /opt/go/src 树?

【问题讨论】:

  • thingsToComposer.go 是你的main,它是否引用了apisjsondef 包?当您在目录中构建时,它只会构建生成该二进制文件所需的内容。
  • 是的,thingsToComposer 是我的主要导入 tb-to-compose/apis 和 rtb.go 导入 tb-to-compose/jsondef

标签: go go-build


【解决方案1】:

您可以尝试使用 -i 标志,或者(这不起作用,抱歉)将目录中的文件明确指定为 go build 的参数,即 go build thingsToComposer.go apis/rtb.go jsondef/structures.go

【讨论】:

  • 我试过了:go build thingsToComposer.go apis/rtb.go jsondef/structures.go 返回 named files must all be in one directory; have ./ and apis/go build ./thingsToComposer.go ./apis/rtb.go ./jsondef/structures.go 相同的错误
  • 对不起@viera,我的错。以我的经验,当我的包之间存在依赖关系时,如果我重建我的主包时,所有包都会重建。您能否向我们提供您文件中的导入语句?
  • 好的,所以 'jsondefs' 中的包被命名为:structures - 我建议包名与文件夹名相同。 TBH,但不确定这是否是问题的根源
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多