2016-10-03 55 views
0

我有一个使用SCons构建的C项目,它与Scons建立的C库链接。库和项目都有自己的SConstruct文件。我在读this topic,你可以以同样的方式从另一个SConstruct调用SConstruct,你会叫SConscript:从一个SConstruct传递参数到另一个SConstruct使用scons

SConscript('folder/to/other/SConstruct') 

提供给顶级SConstruct命令行参数自动传递到被叫SConstruct。但是现在我想将其他变量传递给被调用的SConstruct。我想通了,你可以这样做同样的方式,你会用SConscripts做:

SConscript('folder/to/other/SConsctruct', exports='my_variable') 

然后在所谓SConstruct导入:

Import('my_variable') 

的问题是,当我打电话SConstruct从C库直接从命令行,“my_variabled”不存在,并且scons的引发错误:

scons: *** Import of non-existent variable ''my_variable'' 

我应该解决这个使用try /除了在称为SConstruct块作为从scons获取变量的开关或获取默认值,还是有更优雅的解决方案呢?任何关于不同方法的建议都值得欢迎

回答

0

我的猜测是您正在搜索“-u”或“-U”选项。请咨询MAN page并根据您的需求选择。

+0

不是真的,因为我希望能够独立构建C库而不依赖于上述目录中的SConstruct脚本。然后应该用某个默认值填充'my_variable'的值,或者如果可能的话通过命令行填写 – MaartenVds

+0

但是,如果要将变量从一个SConstruct传输到另一个(作为问题的标题和实际描述状态),您*做*有两者之间的依赖关系。我在这里看到一个小小的矛盾......换句话说,我可能会跳过没有任何顶级结构应该被称为的“要求”,并且会立即获得奖励,从而将我的头撞到这堵墙上。 ;) – dirkbaechle

相关问题