SCons可以跟踪链接依赖关系吗?

时间:2013-09-01 14:08:02

标签: c build scons

我目前正在开发一个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)也可以跟踪依赖关系,因此这很容易出错并且不够优雅。如何改进构建脚本?

1 个答案:

答案 0 :(得分:2)

你要求的是某种工具 1)查看您包含的标题 2)从头部确定哪些源文件需要构建 3)冲洗并重复您刚刚添加的所有源文件

一旦完成它就必须查看它生成的树并尝试将其中的一些压缩成合理的库,假设您还没有这样做(并查看两个问题的基调,那个练习似乎被视为学术性的,而不是良好软件开发的标准部分。)

在一个工具中可能会有一些里程表示“你已经包含标题A / Bh,所以你需要在你的链接行中使用libA”,但即使这样也会有很多陷阱,具体取决于人们的不同构建方式并链接他们的图书馆。

但是你问过的是如何定义编写构建脚本的构建脚本。这是你应该为自己做的事情。