Подтвердить что ты не робот

Разница между параметрами 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 вообще, хотя кажется, что это гораздо более распространено.

Может ли кто-нибудь пролить свет на это? Спасибо!

4b9b3361

Ответ 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.

Итак, они действительно синонимы.