C++ 将动态链接库合并为一个静态链接库

C++ 将动态链接库合并为一个静态链接库,c++,c,compilation,dynamic-linking,C++,C,Compilation,Dynamic Linking,如果我正在创建一个超级易于使用的库,但它的依赖项安装起来真的很麻烦,该怎么办?如果我的库依赖于一组库,那么是否可以创建一个包含所有依赖项的库,这样我的库用户就不必费劲地分别安装每个依赖项了?我知道人们用完整的应用程序来实现这一点,分发二进制文件,但如果能认识到开发人员也是人,有时只是想完成一些事情,而不需要了解每个库的所有内容,那就太好了 (我在这里特别思考C和C++) 你有几个选项: 删除依赖项。很多项目都有它们并不真正需要的依赖项 提供您所依赖的动态链接库,以及您自己构建的可执行文件或库

如果我正在创建一个超级易于使用的库,但它的依赖项安装起来真的很麻烦,该怎么办?如果我的库依赖于一组库,那么是否可以创建一个包含所有依赖项的库,这样我的库用户就不必费劲地分别安装每个依赖项了?我知道人们用完整的应用程序来实现这一点,分发二进制文件,但如果能认识到开发人员也是人,有时只是想完成一些事情,而不需要了解每个库的所有内容,那就太好了


(我在这里特别思考C和C++)

你有几个选项:

  • 删除依赖项。很多项目都有它们并不真正需要的依赖项

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

  • 使用包管理器提供依赖项,这样用户就不必从源代码构建依赖项


  • 不幸的是,没有简单的方法可以将动态链接库转换为静态库。如果您真的想尝试它(知道它可能行不通),请参见此处:

    我想唯一的方法是仅使用静态链接重建所有依赖项以及依赖项的依赖项。但我认为这是不可行的。但是您的问题不是依赖关系,而是如何构建开发人员环境,您可以使用包管理器之类的工具,或者创建包含所有依赖关系的docker映像。