有没有办法在不重建动态库的情况下将静态库添加到动态库?
Any way to add a static library to a dynamic library without rebuilding dynamic library?
假设我有一个静态库 libmystatic.a
和一个动态库 libmydynamic.so
。
是否可以使用 ar
或 patchelf
等命令行工具将 libmystatic.a
存档放入动态库?
所以这相当于重建 libmy_dynamic.so
并编辑 CMakeLists.txt
以添加:
target_link_libraries(my_dynamic libmy_static.a)
但是正如我提到的,我不想重建库。无论如何都可以从命令行执行此操作?
Is it possible
否(在大多数系统上)。否(在任何 ELF 系统上)。
完全链接的映像(例如可执行文件或共享库)被视为 final -- 链接器会丢弃重建它所需的大部分信息。
AIX 是一个明显的例外 -- 在那里可以重建某些类型的共享库。
假设我有一个静态库 libmystatic.a
和一个动态库 libmydynamic.so
。
是否可以使用 ar
或 patchelf
等命令行工具将 libmystatic.a
存档放入动态库?
所以这相当于重建 libmy_dynamic.so
并编辑 CMakeLists.txt
以添加:
target_link_libraries(my_dynamic libmy_static.a)
但是正如我提到的,我不想重建库。无论如何都可以从命令行执行此操作?
Is it possible
否(在大多数系统上)。否(在任何 ELF 系统上)。
完全链接的映像(例如可执行文件或共享库)被视为 final -- 链接器会丢弃重建它所需的大部分信息。
AIX 是一个明显的例外 -- 在那里可以重建某些类型的共享库。