编译c/cpp文件时scons"Depends"什么时候有用?

When is scons "Depends" useful when compiling c/cpp files?

任何c/cpp文件都可以调用其他模块中定义的函数,只有链接阶段才能解析它们。这些 c/cpp 个文件在编译顺序上互不依赖。

所以我的问题是,是否存在一个 c/cpp 文件应该依赖于另一个文件的情况,因此我们需要在 SConstruct 中指定如下:

hello=Program("hello.c")
Depends(hello,'other_file')

谢谢!

强制 SCons 可能不知道的依赖关系可能很有用。 例如,您可以使用

env.Command('a.xyz','b.abc','do_stuff.sh $SOURCES -o $TARGET')

这可能是一个简单的命令,但您知道它依赖于一个文件 "templatefile.wxy"。

您可以使用 Scanner 编写一个完整的构建器(在这种情况下这可能有点矫枉过正)。或者使用 Command + Depends.