符号链接文件夹中的源文件在更改时如何触发构建操作



我正在研究VPP和DPDK,我们知道在VPP中,当我们sudo make build时,它会将DPDK源代码提取到中/构建root/build-vpp_debug-native/external/src-dpdk,然后构建dpdk和vpp。

  • 原始行为:当我更改src-dpdk中的任何文件并使用sudo make build时,它将首先构建dpdk,然后再次链接vpp
  • 意外行为:我创建了一个符号链接src-dpdk(通过使用ln-s…(来代替原始的src-dpdk,如果我们使用sudo make rebuild命令,它运行良好,并且它构建的dpdk将使用符号链接指向的正确路径,但当我在实际路径中做一些更改时,然后使用sudo make build,构建似乎无法感知源文件的更改,所以不要再次构建dpdk,生成日志将显示无需执行任何操作

为什么我会使用符号链接:这是因为在原始vpp存储库中,git无法跟踪src-dpdk的更改,而对于我们的项目,我们有一个独立的dpdk git存储库,所以我想链接我们的dpdk,而不是vpp创建的src-dpdk。

附加:vpp使用make,dpdk使用忍者,介子

首先,makefile不应该使用目录作为目标/先决条件,而应该使用文件。当你这样做的时候,这些事情和更多的事情都会发生。正确的方法是手动列出任何目标或必备文件。尽管有时使用wildcard可能对您有用。

有两个其他选项可能对您有效:

  • 将-L/-检查符号链接时间传递给make命令:sudo make -L build
  • 在makefile中添加一个测试该目标是否是符号链接,如果是,则将该目标添加到.PHONY

相关内容

  • 没有找到相关文章

最新更新