Нельзя копировать библиотеки из ОС и ожидать, что они будут работать без изменений.
OS X использует формат объектного файла Mach-O , в то время как современные системы Linux используют формат объектного файла ELF . Обычный компоновщик / загрузчик ld.so(8)
не будет знать, как загрузить объектные файлы формата Mach-O для запуска исполняемого файла. Так что вам понадобится Apple ld.so(8)
- или как они называют их загрузчик. (Это было какое-то время.)
Кроме того, объектные файлы из OS X будут связаны с поставляемым Apple libc
и требуют соответствующих символов из библиотеки, поставляемой Apple. Вам также необходимо предоставить предоставленную Apple libc
в системе Linux. Эта библиотека C будет пытаться совершать системные вызовы, используя номера системных вызовов OS X и соглашения о вызовах. Я гарантирую, что номера системных вызовов изменились, и почти наверняка соглашения о вызовах отличаются.
В то время как общий загрузчик объектов binfmt_misc
ядра Linux может использоваться для обучения ядра загрузке различных форматов объектных файлов, а системный вызов personality(2)
ядра можно использовать для выбора между различными соглашениями о вызовах, номерами системных вызовов, и так далее, объем работы, необходимый для выполнения этой работы, является не чем иным, как огромным: Проект WINE работает именно над этой проблемой (но с COFF формата Windows и поддерживающими библиотеками) с 1993 года.
Было бы проще запустить:
apt-get install libgs0-dev
или любой другой эквивалент, который вы выбрали. Если ваш дистрибутив не делает его легкодоступным, все равно будет проще скомпилировать и установить библиотеку вручную, чем пытаться заставить работать версию OS X.