【问题标题】:Combine Dynamically Linked Libraries into one Statically Linked Library将动态链接库合并为一个静态链接库
【发布时间】:2021-02-14 03:27:26
【问题描述】:

如果我正在创建一个非常易于使用的库,但它的依赖项安装起来真的很痛苦,该怎么办?如果我的库依赖于一堆库,是否可以创建一个包含所有依赖项的库,所以我的库用户不需要单独安装每个依赖项?我知道人们使用完整的应用程序、分发二进制文件来做到这一点,但很高兴意识到开发人员也是人,有时只是想完成一些事情而不需要了解每个库的所有内容。

(我在这里专门考虑 C 和 C++。)

【问题讨论】:

  • 我想唯一的方法是仅使用静态链接重建所有依赖项和依赖项的依赖项。但我不认为这是可行的。但是你的问题不是依赖,而是如何搭建开发环境,可以使用Conan之类的包管理器,或者创建一个包含所有依赖的docker镜像。

标签: c++ c compilation dynamic-linking


【解决方案1】:

你有几个选择:

  1. 删除依赖项。很多项目都有他们并不真正需要的依赖项。

  2. 提供您所依赖的动态链接库,以及您自己构建的可执行文件或库。

  3. 使用包管理器来提供您的依赖项,这样用户就不必从源代码构建它们。

不幸的是,没有简单的方法可以将动态链接库转换为静态库。如果你真的想试试(知道它可能行不通),请看这里:How can I convert dynamically linked application to statically one?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多