Технические вопросы и ответы QA1118

Статически соединенные двоичные файлы на Mac OS X

Q: Я пытаюсь соединить свой двоичный файл статически, но ему не удается соединиться, потому что он не может найти crt0.o. Почему?

A: Прежде, чем обсудить этот вопрос, важно согласиться с терминологией:

Apple полностью поддерживает статические библиотеки; если Вы хотите создать один, только запустите с надлежащего XCode или целевой шаблон проекта.

Apple не поддерживает статически соединенные двоичные файлы на Mac OS X. Статически соединенный двоичный файл принимает совместимость на уровне двоичных кодов в интерфейсе системного вызова ядра, и мы не делаем гарантий на той передней стороне. Скорее мы стремимся гарантировать совместимость на уровне двоичных кодов в каждой динамично соединенной системной библиотеке и платформе.

Если Ваш проект абсолютно должен создать статически соединенный двоичный файл, можно добраться Csu (C запуск) модуль от Дарвина и здания попытки crt0.o для себя. Очевидно, мы не будем поддерживать такое усилие.



История версии документа


ДатаПримечания
20.09.2011

Переписанный для разъяснения позиции Apple на статически соединенных двоичных файлах.

07.02.2002

Новый документ, объясняющий, что статически соединил двоичные файлы, не поддерживается на Mac OS X.