Я должен был сделать, это только что и Поле списка были решением. Никто даже не заметит различия.
Ну, прошло какое-то время, так что простите меня, если я полностью ошибаюсь, но это по сути означает, что код внутри .so можно перемещать.
.so по сути является DLL который может использоваться многими приложениями, но загружается в память только один раз. .O должен быть связан с приложением, чтобы функциональность кода стала доступной.
Это называется статической компоновкой (.o) или динамической компоновкой (.so)
См .: IBM Developer Works или Университет Калгари или IECC для получения дополнительной информации
Надеюсь, это ответит на ваши вопросы (и я надеюсь, что мое объяснение верно!)