Прежде всего, я прошу об этом с технической точки зрения, а не с точки зрения пользователя библиотечного кода. Одним из примеров различия является то, что общие объекты содержат заголовки программ, а обычные объектные файлы - нет. Каковы другие отличия?
Что касается моего вопроса, я пытаюсь выяснить, какой контент нужно будет удалить из общего объектного файла, чтобы линкер рассматривал его как обычный объектный файл и пытался переместить его и статически связать его с сгенерированный исполняемый файл, вместо того, чтобы идентифицировать его как общую библиотеку и создать ссылку DT_NEEDED
. Это, в свою очередь, является первым шагом к примитивному "преобразованию" разделяемой библиотеки в нечто, что может быть статически связано (однако, может потребоваться дальнейшая работа, чтобы сделать возможными переселения).