34

Clang または GCC の Darwin バックエンドを使用して OSX 用の実行可能ファイルを作成する場合、フラグ-mmacosx-version-min=versionを使用して、実行可能ファイルが実行される OSX の最も古いバージョンを設定できます。

特定の実行可能ファイルから、コンパイルに使用されたフラグを追跡する方法はありますか? つまり、特定の実行可能ファイルの対象となる OSX の最小バージョンを特定する方法はありますか?

4

2 に答える 2

55

load コマンドを使用otool -l /path/to/binaryして検査します。LC_VERSION_MIN_MACOSX具体的には、バージョン フィールドです。

たとえば、デプロイメント ターゲット ( -mmacosx-version-min) 10.8 を指定して 10.8 SDK でコンパイルされたバイナリは、次のLC_VERSION_MIN_MACOSXようになります。

Load command 9
      cmd LC_VERSION_MIN_MACOSX
  cmdsize 16
  version 10.8
      sdk 10.8

一方、デプロイ ターゲット 10.7 を使用して 10.8 SDK でコンパイルされたバイナリには、LC_VERSION_MIN_MACOSX次のようなロード コマンドが必要です。

Load command 9
      cmd LC_VERSION_MIN_MACOSX
  cmdsize 16
  version 10.7
      sdk 10.8
于 2013-06-17T13:34:48.720 に答える
9

最新の macOS 実行可能ファイルをビルドすると、受け入れられた回答に記載されているロード コマンドが表示されません。ただし、およびフィールドLC_BUILD_VERSIONが含まれています。minossdk

Load command 10
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform 1
    minos 11.0
      sdk 11.1
   ntools 1
     tool 3
  version 609.8
于 2020-12-25T03:14:47.903 に答える