Ответ 1
It невозможно и не рекомендуется для создания общей/статической версии библиотеки из того же набора объектных файлов - по крайней мере на многих платформах.
Объектные файлы, связанные с общей библиотекой, должны быть скомпилированы как независимый по позиции код (-fpic
/-fpic
в Linux/Solaris и т.д..), тогда как ваши исполняемые и статические библиотеки (обычно) не содержат независимого от позиции кода. С другой стороны, разделяемые библиотеки торгуют с использованием кодовых страниц с накладными расходами во время выполнения из-за отсутствия ссылок. Поскольку эти косвенные функции не нужны для статических библиотек и двоичных файлов, независимый от позиции код обеспечивает только недостатки с помощью thoses. Таким образом, если вы хотите создать как общую, так и статическую библиотечную версию, вам нужно создать два разных набора объектных файлов (один из которых не зависит от позиции, а другой - наоборот).