¿Cuál es la diferencia entre MACOSX_DEPLOYMENT_TARGET y-mmacosx-version-min?
gcc backwards-compatibility (1)
A menudo tengo que apuntar a las versiones de Mac OS X que son más antiguas que la que estoy ejecutando actualmente. Como prefiero trabajar con un shell bash y Makefiles, no uso Xcode. Apple admite explícitamente la orientación a versiones anteriores de OS X , pero siempre me ha confundido la redundancia de los dos pasos de configuración que generalmente se toman para apuntar a plataformas más antiguas:
gcc se inicia utilizando
--macosx-version-min
:gcc --mmacosx-version-min=10.6 ....
La variable de entorno
MACOSX_DEPLOYMENT_TARGET
se establece en la plataforma deseada, por ejemploexport MACOSX_DEPLOYMENT_TARGET=10.6
Al tratar de descubrir la diferencia real entre los dos mediante la búsqueda, se le ocurrirán diferentes respuestas. Algunas personas dicen que hacen exactamente lo mismo, por lo que solo es necesario usar uno de los dos. Sin embargo, también hay voices que dicen que es necesario hacer ambas cosas: inicie gcc con --macosx-version-min
y configure la variable de entorno.
¿Son estas dos cosas exactamente iguales? ¿Es solo necesario usar uno de los dos pero no ambos? ¿Hay alguna documentación oficial disponible en algún lugar? Apple menciona MACOSX_DEPLOYMENT_TARGET
pero no menciona --macosx-version-min
en absoluto, aunque parece ser mucho más común.
Las páginas de manual de gcc en Mac OS X dicen que también son:
-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.