web-dev-qa-db-ja.com

MACOSX_DEPLOYMENT_TARGETと-mmacosx-version-minの違いは何ですか?

多くの場合、現在実行しているバージョンよりも古いバージョンのMac OS Xをターゲットにする必要があります。私はbashシェルとMakefileを使用したいので、Xcodeは使用しません。 Apple 古いOS Xバージョンのターゲット設定を明示的にサポートしています が、古いプラットフォームをターゲットにするために通常行われる2つの設定手順の冗長性に常に混乱しています。

  1. gccは--macosx-version-minを使用して開始されます:

    gcc --mmacosx-version-min=10.6 ....
    
  2. MACOSX_DEPLOYMENT_TARGET環境変数は、目的のプラットフォームに設定されます。

    export MACOSX_DEPLOYMENT_TARGET=10.6
    

検索によって2つの実際の違いを把握しようとすると、異なる答えが見つかります。 一部の人々 彼らはまったく同じことをするので、2つのうちの1つを使用するだけで十分です。ただし、 voices もあります。これは、両方を行う必要があることを示しています。gccを--macosx-version-minandセットで開始します環境変数。

これら2つのことはまったく同じですか?両方ではなく、どちらか一方のみを使用する必要がありますか?どこかに利用可能な公式ドキュメントはありますか? AppleはMACOSX_DEPLOYMENT_TARGET に言及していますが、--macosx-version-minには言及していません。

31
Andreas

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