python – 静态库和SCons的传递依赖项

在为两者构建两个库和测试程序时,我偶然发现了一个看似简单的问题.

问题:我有两个静态库,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中自己实现.

您可以使用的一个技巧是将回调定义为构造变量(即将通过Python函数调用扩展的字符串).让该函数调用基于您在分析时计算的某种形式的依赖图计算所需库的传递列表(即通过sconscripts中的方法调用),并且您不必为每个目标重复完整的库列表或环境.

相关文章

我最近重新拾起了计算机视觉,借助Python的opencv还有face_r...
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Poolin...
记得大一学Python的时候,有一个题目是判断一个数是否是复数...
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic ...
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic v...
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic ...