SCons:SConscript

时间:2016-06-14 13:22:34

标签: scons

我有一个scons项目,在子目录中有许多SConscript文件。在其中一个SConscript文件中,我想检查构建主机上是否安装了特定的库。这是代码片段:

Import("env")

conf = Configure(env)
if conf.CheckLibWithHeader(...):
    doSomething()

env.Library(...)

当我执行build scons失败并出现strnge错误时没有错误消息,如下所示:

scons: *** 
File "/path/to/SConscript", line 3, in <module>

第3行是我调用Configure()的地方。我想我正在做一些不允许使用Configure()函数但我在scons文档中找不到任何解释。

请帮我调试一下。

1 个答案:

答案 0 :(得分:0)

所以问题出现在一个兄弟SConscript文件中。已拨打Configure(env),但配置对象未通过conf.Finish()电话处理。

这是一个问题,因为SCons不允许随时创建多个配置对象。我通过分析SCons来源找到了这个规则 - 我不知道这是否有记录。

因此,当我调用Configure(env)时,SCons抛出一个异常,因为它看到另一个活动的配置对象是由兄弟SConscript孤立的。