我为我的测试设置了自定义环境:
test_env = env.Clone()
test_env.Append(LIBS=['boost_unit_test_framework'])
但是对于我的一个测试,我想链接另一个库:
test_env.Program('foo_tests',
source='foo/tests.cpp',
LIBS=['extralib'],
LIBPATH=['.'])
可悲的是,这会覆盖环境中的LIBS
,当我想要添加它时。有没有比LIBS=test_env['LIBS'] + ['extralib']
更好(即更规范)的方式?
答案 0 :(得分:2)
在Builder调用(如Program)中为环境变量指定新值始终被解释为"覆盖"。因此,无法像上面的示例中那样编译完整的替换值。 另一种选择是克隆环境" test_env"再次,然后使用Append添加" extralib" LIBS ...