J'ai souvent besoin de cibler des versions de Mac OS X plus anciennes que celle que j'utilise actuellement. Comme je préfère travailler avec un shell bash et des Makefiles, je n'utilise pas Xcode. Apple prend explicitement en charge le ciblage des anciennes versions d'OS X , mais j'ai toujours été troublé par la redondance des deux étapes de configuration qui sont généralement prises pour cibler les anciennes plates-formes:
gcc démarre avec --macosx-version-min
:
gcc --mmacosx-version-min=10.6 ....
Le MACOSX_DEPLOYMENT_TARGET
la variable d'environnement est définie sur la plate-forme souhaitée, par exemple.
export MACOSX_DEPLOYMENT_TARGET=10.6
Lorsque vous essayez de comprendre la différence réelle entre les deux en recherchant, vous obtiendrez des réponses différentes. Certaines personnes disent qu'elles font exactement la même chose, il est donc seulement nécessaire d'utiliser l'une des deux. Cependant, il y a aussi voix qui disent qu'il faut faire les deux: démarrer gcc avec --macosx-version-min
et définissez la variable d'environnement.
Ces deux choses sont-elles exactement les mêmes? Faut-il seulement utiliser l'un des deux mais pas les deux? Y a-t-il de la documentation officielle disponible quelque part? Apple mentionne MACOSX_DEPLOYMENT_TARGET
mais ne mentionne pas --macosx-version-min
du tout, même si cela semble beaucoup plus courant.
Les pages de manuel de gcc sur Mac OS X disent qu'elles sont synonymes:
-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.