Вы можете (просто извлеките все файлы .o
и свяжите их с -shared
, чтобы получить .so
), но работает ли он и насколько хорошо он работает, зависит от платформы и от того, была ли статическая библиотека составлено как позиционно-независимый код (PIC). На некоторых платформах (например, x86_64) не-PIC-код недопустим в разделяемых библиотеках и не будет работать (на самом деле я думаю, что компоновщик откажется сделать .so
). На других платформах не PIC-код будет работать в разделяемых библиотеках, но копия библиотеки в памяти не может использоваться совместно различными программами, использующими ее, или даже разными экземплярами одной и той же программы, поэтому это приведет к огромному увеличению памяти.