Clang または GCC の Darwin バックエンドを使用して OSX 用の実行可能ファイルを作成する場合、フラグ-mmacosx-version-min=versionを使用して、実行可能ファイルが実行される OSX の最も古いバージョンを設定できます。
特定の実行可能ファイルから、コンパイルに使用されたフラグを追跡する方法はありますか? つまり、特定の実行可能ファイルの対象となる OSX の最小バージョンを特定する方法はありますか?
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
最新の 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