如何找出特定 Boost 库需要哪些依赖项(即其他 Boost 库)?
Posted
技术标签:
【中文标题】如何找出特定 Boost 库需要哪些依赖项(即其他 Boost 库)?【英文标题】:How to find out what dependencies (i.e other Boost libraries) a particular Boost library requires? 【发布时间】:2012-05-30 14:49:03 【问题描述】:对于任何 C++ Boost 库,如何找出它需要哪个 Boost 库?
示例(但不一定是工作示例):Boost 库“test”需要 Boost 库“date_time”。
问候,
【问题讨论】:
不确定你的意思。如果你有一个 boost 库,为什么还需要其他 boost 库? 必须深入了解自己的灵魂,和/或查看文档。通常,Boost 确实包含相当好的内容(标题和#pragma lib
),因此您很少需要担心这一点。
@unwind,让我想起了“GNU 不是 Unix”:)
@Cornstalks: ...在问题描述中:)
另见***.com/questions/440585/building-boost-bcp
【参考方案1】:
boost 自带一个工具来收集库的依赖关系。
它被称为bcp。如果您只需要文件列表,则必须使用 --list 选项。
【讨论】:
我也遇到过这种情况。尤其是回答简短的问题,比如这些。【参考方案2】:如果您想找出这些依赖项来隔离您的软件所需的组件,您可以使用bcp(Boost Copy)
它将选定的 boost 库及其所有依赖项复制到目标位置。
例如
bcp regex /foo
将完整的regex
库及其依赖项复制到/foo
免责声明:我对 bcp 没有任何实际经验。
编辑:
如果您只想检查编译库依赖于哪个编译库,您可以在 Linux 上使用 ldd <boost_library_filename>.so
或在 Windows 上使用 Dependency Walker。
【讨论】:
【参考方案3】:现代解决方案是使用boost Dependency Report(从 boost v1.66.0 开始提供)。
【讨论】:
以上是关于如何找出特定 Boost 库需要哪些依赖项(即其他 Boost 库)?的主要内容,如果未能解决你的问题,请参考以下文章
如何确定我的哪些依赖项依赖于我的 node_modules 中的特定包?
如何找出在 Linux 上运行 Java 类需要哪些共享库?