【发布时间】:2016-10-03 06:19:00
【问题描述】:
我有一个使用 SCons 构建的 C 项目,该项目与 Scons 构建的 C 库链接。库和项目都有自己的 SConstruct 文件。我在this topic 中读到,您可以像调用 SConscript 一样从另一个 SConstruct 调用 SConstruct:
SConscript('folder/to/other/SConstruct')
提供给顶层 SConstruct 的命令行参数会自动传递给被调用的 SConstruct。但现在我想将其他变量传递给被调用的 SConstruct。我发现您可以像使用 SConscripts 一样执行此操作:
SConscript('folder/to/other/SConsctruct', exports='my_variable')
然后在被调用的SConstruct中导入它们:
Import('my_variable')
问题是当我直接从命令行调用 C 库中的 SConstruct 时,'my_variabled' 不存在并且 scons 引发错误:
scons: *** Import of non-existent variable ''my_variable''
我应该使用被调用的 SConstruct 中的 try/except 块作为开关来解决此问题,以从 scons 获取变量或获取默认值,还是有更优雅的解决方案?欢迎对不同方法提出任何建议。
【问题讨论】: