在为两者构建两个库和测试程序时,我偶然发现了一个看似简单的问题.
问题:我有两个静态库,libA和libB,libB依赖于libA.我不想明确地将使用libB的所有程序链接到libA,我希望SCons看到如果程序链接到库B,它也应该链接到库A.
我已经构建了一个简单的例子来说明这个问题.由于我找不到合适的文件托管服务器并且这与编程有关,因此我创建了一个小型SVN存储库:
svn checkout https://example-repository.googlecode.com/svn/trunk example-repository
或者你可以下载一个tarball here.
最佳答案
SCons没有像你描述的那样内置支持表达传递库依赖关系,但它的年轻表兄Waf确实如此.有关Waf书中的“使用”功能,请参阅documentation. Boost build system也有此功能under a different name.如果您愿意编写一些Python代码,您也可以选择在SCons中自己实现.
原文链接:https://www.f2er.com/python/439107.html您可以使用的一个技巧是将回调定义为构造变量(即将通过Python函数调用扩展的字符串).让该函数调用基于您在分析时计算的某种形式的依赖图计算所需库的传递列表(即通过SConscripts中的方法调用),并且您不必为每个目标重复完整的库列表或环境.