macos - MACOSX_DEPLOYMENT_TARGET 和 -mmacosx-version-min 有什么区别?

标签 macos gcc backwards-compatibility

我经常需要针对比我当前运行的版本更旧的 Mac OS X 版本。因为我更喜欢使用 bash shell 和 Makefile,所以我不使用 Xcode。苹果 explicitly supports targeting older OS X versions ,但我一直对通常用于针对旧平台的两个配置步骤的冗余感到困惑:

  • gcc 使用 --macosx-version-min 启动:

    gcc --mmacosx-version-min=10.6 ....
    
  • MACOSX_DEPLOYMENT_TARGET环境变量设置为所需的平台,例如

    export MACOSX_DEPLOYMENT_TARGET=10.6
    

  • 当试图通过搜索找出两者之间的实际差异时,您会得到不同的答案。 Some people说他们做的完全一样,所以只需要使用两者之一。但是,也有voices其中说有必要同时做:用 --macosx-version-min 启动 gcc并设置环境变量。

    这两件事完全一样吗?是否只需要使用两者之一而不是两者?是否有一些官方文档可用? Apple mentions MACOSX_DEPLOYMENT_TARGET 但没有提到--macosx-version-min根本,即使它似乎更常见。

    最佳答案

    Mac OS X 上 gcc 的手册页说它们是同义词:

    -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.
    

    关于macos - MACOSX_DEPLOYMENT_TARGET 和 -mmacosx-version-min 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25352389/

    相关文章:

    c - ALSA Lib 1.1.2 编译错误

    ubuntu - 如何在 Ubuntu 20 上下载 gcc v4.4.3 版本?

    iPhone - 在旧版 SDK : __IPHONE_OS_VERSION_MAX_ALLOWED values 上编译

    ios - 检测 BOOL 可用性以支持多个 iOS 版本?

    macos - Mac OS X 中的自动布局警告

    c - 为什么我运行这个 C 代码时 CPU 核心使用率有一个开关?

    javascript - 如何在 safari 应用程序和从 safari 应用程序扩展资源文件夹加载的 html 页面之间进行通信

    python - 排除 coverage 中的 'else' 子句

    java - 无法在我的 Mac 上安装 Eclipse IDE

    在 Mac OS X 上编译和链接 libev