我所做的:
- 使用
${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
2条答案
按热度按时间e4yzc0pl1#
当这个问题解决后,我们还应该用
-trimpath
进行测试。当-trimpath
通过时,大多数路径都不会包含在缓存键中,但我认为无论如何${SRCDIR}
都需要在那里。juud5qan2#
将文本内容移动到待办事项里程碑。