Объединитесь несколько .so совместно использовали библиотеки

Это также работает для разрешения сообщения «xcode-select: error: инструмент 'opendiff' требует Xcode, но активный каталог разработчика '/ Library / Developer / CommandLineTools' является экземпляром инструментов командной строки" :

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
37
задан Metiu 27 May 2009 в 10:59
поделиться

2 ответа

Объединение нескольких разделяемых библиотек в одну действительно практически невозможно во всех UNIXen, кроме AIX: компоновщик считает .so «конечным» продуктом.

Но объединение архивов в .so не должно быть проблемой:

gcc -shared -o c.so -Wl,--whole-archive a.a b.a -Wl,--no-whole-archive
42
ответ дан 27 November 2019 в 04:53
поделиться

На практике это невозможно.

С точки зрения компоновщика, SO-библиотека - это конечный продукт, который не содержит информации о перемещении, необходимой для компоновки.

Если у вас есть доступ в исходные или объектные файлы для обеих библиотек, из них просто скомпилировать / скомпилировать объединенный SO.

7
ответ дан 27 November 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: