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
が含まれています。minos
sdk
Load command 10
cmd LC_BUILD_VERSION
cmdsize 32
platform 1
minos 11.0
sdk 11.1
ntools 1
tool 3
version 609.8