有没有办法在不重建动态库的情况下将静态库添加到动态库?

Any way to add a static library to a dynamic library without rebuilding dynamic library?

假设我有一个静态库 libmystatic.a 和一个动态库 libmydynamic.so。 是否可以使用 arpatchelf 等命令行工具将 libmystatic.a 存档放入动态库?

所以这相当于重建 libmy_dynamic.so 并编辑 CMakeLists.txt 以添加:

target_link_libraries(my_dynamic libmy_static.a)

但是正如我提到的,我不想重建库。无论如何都可以从命令行执行此操作?

Is it possible

否(在大多数系统上)。否(在任何 ELF 系统上)。

完全链接的映像(例如可执行文件或共享库)被视为 final -- 链接器会丢弃重建它所需的大部分信息。

AIX 是一个明显的例外 -- 在那里可以重建某些类型的共享库。