SCons:SConscript 中神秘的 Configure() 失败
SCons: misterious Configure() failure in SConscript
我有一个 scons 项目,子目录中有许多 SConscript 文件。在其中一个 SConscript 文件中,我想检查构建主机上是否安装了特定的库。这是代码片段:
Import("env")
conf = Configure(env)
if conf.CheckLibWithHeader(...):
doSomething()
env.Library(...)
当我执行构建 scons 时失败并出现 strnge 错误,没有这样的错误消息:
scons: ***
File "/path/to/SConscript", line 3, in <module>
第 3 行是我调用 Configure() 的地方。我想我正在做 Configure() 函数不允许的事情,但我在 scons 文档中找不到任何解释。
请帮我调试一下。
所以问题出在其中一个同级 SConscript 文件中。调用了 Configure(env)
,但配置对象未通过调用 conf.Finish()
处理。
这是一个问题,因为 SCons 不允许在任何时候创建多个配置对象。我通过分析 SCons 来源发现了这个规则 - 我不知道这是否被记录在案。
因此,当我调用 Configure(env)
SCons 时抛出一个异常,因为它发现有另一个活动的配置对象被同级 SConscript 孤立。
我有一个 scons 项目,子目录中有许多 SConscript 文件。在其中一个 SConscript 文件中,我想检查构建主机上是否安装了特定的库。这是代码片段:
Import("env")
conf = Configure(env)
if conf.CheckLibWithHeader(...):
doSomething()
env.Library(...)
当我执行构建 scons 时失败并出现 strnge 错误,没有这样的错误消息:
scons: ***
File "/path/to/SConscript", line 3, in <module>
第 3 行是我调用 Configure() 的地方。我想我正在做 Configure() 函数不允许的事情,但我在 scons 文档中找不到任何解释。
请帮我调试一下。
所以问题出在其中一个同级 SConscript 文件中。调用了 Configure(env)
,但配置对象未通过调用 conf.Finish()
处理。
这是一个问题,因为 SCons 不允许在任何时候创建多个配置对象。我通过分析 SCons 来源发现了这个规则 - 我不知道这是否被记录在案。
因此,当我调用 Configure(env)
SCons 时抛出一个异常,因为它发现有另一个活动的配置对象被同级 SConscript 孤立。