如何找出特定 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 库)?的主要内容,如果未能解决你的问题,请参考以下文章

你如何找出哪些 NPM 模块依赖于你的?

如何找出共享对象的哪些函数被程序或其他库使用?

如何确定我的哪些依赖项依赖于我的 node_modules 中的特定包?

如何找出在 Linux 上运行 Java 类需要哪些共享库?

IntelliJ IDEA 中的 java Maven 项目,如何找到不需要的依赖项?

Redshift - 如何显示 CASCADE 将删除的依赖项?