Я знаю, как создавать общие библиотеки с использованием gcc
и ln
, но как создать общую библиотеку, используя только ld
, когда у меня есть объектные файлы (из C++ или c-кода) в качестве входных данных и как я могу поменять их на новую версию библиотеки?Как создать общую библиотеку с помощью ld?
2
A
ответ
1
как создать общую библиотеку, используя только ЛД, когда у меня есть объектные файлы (с C++ или с кодом) в качестве входных данных
Вы можете запустить gcc -v -shared ...
, чтобы обнаружить, какие варианты gcc
проходит в ld
. Затем вы можете передать те же аргументы ld
, и вы должны получить одинаковый результат.
Примечание: это плохо -advised (не это сделать): аргументы изменяются с разными версиями gcc
и ld
, и они меняются от одной версии операционной системы к следующему.
Очень часто строится линия ссылок для ld
, которая была правильной несколько лет назад, но больше не существует. Ошибки, возникающие при этом, часто являются низкоуровневыми и утонченными, а также способностью понимать и исправлять большинство программистов.
Pass '-shared'? – immibis
Большинство людей используют 'ld' через' gcc/g ++ ', они не вызывают его напрямую. – Galik
Что вы подразумеваете под «обмен на новую версию библиотеки»? –