是否可以将多个静态库捆绑到一个静态库[C++]中?
我为我的 C++ 代码创建了一个静态库,它依赖于 CentOS 7 环境中的 Boost、OpenSSL、CURL 和线程。
是否可以将libboost_system.a, libssl.a, libcrypto.a, libcurl.a,libpthread.a与我的 C++ 库一起捆绑到一个库中?
回答
.a文件只是档案;您可以使用该ar命令来操作它们。
因此,您可以ar x从每个库中提取所有对象 ( ),然后ar a使用所有单个文件创建一个新库 ( )。
然而,这可能不是一个好主意,因为这意味着每次上游库之一发生变化时(例如,由于安全问题得到修复),您都必须不断重建它。
程序具有多个库依赖项和包含项是正常的。
- That sounds normal. `error_code.o` is an object inside of `libboost_system.a`. Now use `ar a` to put that object into your library. https://www.boost.org/doc/libs/1_76_0/libs/system/doc/html/system.html#ref_class_error_code