当${SRCDIR}存在于cgo头文件中时,cmd/go:将源目录包含在缓存键中,

n1bvdmb6  于 3个月前  发布在  Go
关注(0)|答案(2)|浏览(39)

我所做的:

  • 使用${SRCDIR}创建一个包含cgo头文件的项目
  • 将该项目移动到一个新目录
  • 构建

结果:
ld: warning: directory not found for option '-L/Users/josh/...redacted...
被红线圈起来的部分是cgo源代码中的${SRCDIR}指令指向的前一个目录。
在执行go clean -cache之后,错误消失了。
我怀疑cmd/go的缓存在这里可能过于有效了。它可能没有考虑到包含项目的绝对路径,但在存在${SRCDIR} cgo指令时可能需要考虑这一点。
cc @bcmills@jayconrod

e4yzc0pl

e4yzc0pl1#

当这个问题解决后,我们还应该用-trimpath进行测试。当-trimpath通过时,大多数路径都不会包含在缓存键中,但我认为无论如何${SRCDIR}都需要在那里。

juud5qan

juud5qan2#

将文本内容移动到待办事项里程碑。

相关问题