【发布时间】:2013-09-01 14:08:02
【问题描述】:
我目前正在开发一个 C 项目,其中包含一个主要可执行文件和一个用于每个单元测试的可执行文件。在 SConstruct 文件中,我指定每个可执行文件的依赖项,例如
env.Program(['Main.c', 'Foo.c', 'Bar.c', 'Baz.c', ...])
env.Program(['FooTest.c', 'Foo.c', 'Baz.c', ...])
env.Program(['BarTest.c', 'Bar.c', 'Baz.c', ...])
...
然而,这很容易出错且不优雅,因为构建工具也可以跟踪依赖关系,在本例中为 SCons。如何改进我的构建脚本?
【问题讨论】:
-
这个和这个问题基本一样:stackoverflow.com/q/18141648/1158895
-
您可以通过使用库来改进这一点。
-
@Brady 那么问题是为什么在 SCons(或我知道的任何其他构建工具)中没有实现链接依赖的自动跟踪。
-
构建工具不应该在如此低的级别上工作来读取源文件并找出包含的依赖关系。
-
@lzprgmr 但这就是 Scons 所做的,不管你喜不喜欢。它不做的是整理链接依赖。