c++ - 跨目标传播库依赖项
问题描述
TLDR:假设这X
是一个共享库,然后给出这段代码
Y = StaticLibrary(..., LIBS = "X")
Z = SharedLibrary(..., LIBS = "Y")
有没有办法让 SCons 自动注意到Z
必须链接X
,从而自动将其添加到链接行?
在我们的 SCons 构建系统中,我们有许多不同的目标,每个目标可能一次又一次地依赖于相同的库。
foo.a: Need bar.so
X.a: Need foo.a
Y.a: Need X.a
直到几年后,我们还需要在 SConscripts 上手动指定传递依赖,以满足中间库文件的依赖。例如,在上面我们必须手动指定
Y.a: Need X.a, need foo.a, need bar.so
然后我们改变它来自动整理依赖关系。为此,我们简单地使用递归方法传播每个库依赖项(禁止循环)。这对雅很有效
但是假设 X 是一个共享库。正确的依赖项需要看起来像这样
Y.a: Need X.so
在 X 中,我们已经封装了静态(和位置无关)foo.a
,并且我们本身也有先决条件声明(动态 NEEDED)X.so
以在运行时解析bar.so
。因此,我们不能在此处重新声明对bar.so
和的依赖foo.a
。
理想情况下,我们希望 SCons 拥有这种智能,也许它已经拥有,但我们直到现在还没有找到它!
解决方案
SCons 目前没有实现这一点。
欢迎请求请求。
您可能会考虑将您当前的实现加入到 scons 用户邮件列表中?也许它可以扩展到做你要求的事情,然后为 SCons 做出贡献?
推荐阅读
- kubernetes - 将 kube-lego 升级到 cert-manager 时出现的问题
- javascript - Discord.js member.user 返回由 <> 包围的成员 ID
- java - Android:Firebase 结果在不同的条形码扫描中连续显示两次
- python - 当我单击 Space Pygame 时,如何让我的鸟继续跳跃?
- oracle - 调用“VENTAS_MAYOR”时参数的数量或类型错误
- java - 不使用表单字段的 Quarkus 多部分客户端
- wix - 使用 Wix 创建的安装包在安装期间启动安装程序的另一个实例
- python - Python selenium 问题,使用 driver.find_element_by_name() 和隐式等待给出 NoSuchElementException,
- javascript - API 请求上限为 10 张图片
- python - 有什么办法可以填补图像中两个部分之间的空白?