Как создать общую библиотеку с помощью ld?

Я знаю, как создавать общие библиотеки с помощью gcc и ln , но как создать общую библиотеку, используя только ld когда у меня есть объектные файлы (из c ++ или c-кода) в качестве входных данных и как я могу поменять на новую версию библиотеки?

как создать общую библиотеку, используя только ld, когда у меня есть объектные файлы (из c ++ или c-кода) в качестве входных данных

Вы можете запустить gcc -v -shared ... чтобы узнать, какие опции gcc gcc -v -shared ... ld . Затем вы можете передать те же аргументы в ld напрямую, и вы должны получить одинаковый результат.

Примечание: это недоразумение ( не делайте этого): аргументы меняются с разными версиями gcc и ld , и они меняются от одной версии ОС к следующей.

Очень часто конструировать линии ссылок для ld которые были правильными несколько лет назад, но больше не существует. Ошибки, возникающие при этом, часто являются низкоуровневыми и утонченными, а также способностью понимать и исправлять большинство программистов.