Разница между параметрами MACOSX_DEPLOYMENT_TARGET и -mmacosx-version-min
Мне часто приходится указывать версии Mac OS X, которые старше, чем тот, который я сейчас запускаю. Поскольку я предпочитаю работать с оболочкой bash и make файлами, я не использую Xcode. Apple явно поддерживает назначение более старых версий OS X, как описано здесь. Тем не менее, я всегда был в замешательстве из-за явной избыточности двух этапов настройки, которые обычно принимаются для установки на более ранние платформы:
1) gcc всегда запускается с использованием --macosx-version-min, например:
gcc --mmacosx-version-min=10.6 ....
2) Переменная среды MACOSX_DEPLOYMENT_TARGET также должна быть установлена на желаемую платформу, например.
export MACOSX_DEPLOYMENT_TARGET=10.6
Когда вы пытаетесь выяснить фактическую разницу между ними по поиску в Google, вы получите разные ответы. Некоторые люди говорят, что они делают точно то же самое, поэтому нужно только использовать один из двух. Тем не менее, есть и голоса, которые говорят, что необходимо сделать оба: запустите gcc с --macosx-version-min и установите переменную окружения.
Вот почему я хотел бы спросить, есть ли у кого-то ответ определенный по этому вопросу: эти две вещи абсолютно одинаковы, поэтому нужно использовать только один из двух, но не оба? Есть ли даже какая-то официальная документация? Apple упоминает MACOSX_DEPLOYMENT_TARGET, но не упоминает --macosx-version-min вообще, хотя кажется, что это гораздо более распространено.
Может ли кто-нибудь пролить свет на это? Спасибо!
Ответы
Ответ 1
Хорошо, я нашел его в man-страницах gcc на Mac OS X:
-mmacosx-version-min=version
The earliest version of MacOS X that this executable will run on is
version. Typical values of version include 10.1, 10.2, and 10.3.9.
This value can also be set with the MACOSX_DEPLOYMENT_TARGET environment
variable. If both the command-line option is specified and the
environment variable is set, the command-line option will take precedence.
Итак, они действительно синонимы.