Это также работает для разрешения сообщения «xcode-select: error: инструмент 'opendiff' требует Xcode, но активный каталог разработчика '/ Library / Developer / CommandLineTools' является экземпляром инструментов командной строки" :
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Объединение нескольких разделяемых библиотек в одну действительно практически невозможно во всех UNIXen, кроме AIX: компоновщик считает .so «конечным» продуктом.
Но объединение архивов в .so не должно быть проблемой:
gcc -shared -o c.so -Wl,--whole-archive a.a b.a -Wl,--no-whole-archive
На практике это невозможно.
С точки зрения компоновщика, SO-библиотека - это конечный продукт, который не содержит информации о перемещении, необходимой для компоновки.
Если у вас есть доступ в исходные или объектные файлы для обеих библиотек, из них просто скомпилировать / скомпилировать объединенный SO.