2016-04-26 2 views
2

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

+1

Pass '-shared'? – immibis

+0

Большинство людей используют 'ld' через' gcc/g ++ ', они не вызывают его напрямую. – Galik

+0

Что вы подразумеваете под «обмен на новую версию библиотеки»? –

ответ

1

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

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

Примечание: это плохо -advised (не это сделать): аргументы изменяются с разными версиями gcc и ld, и они меняются от одной версии операционной системы к следующему.

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