2013-06-17 4 views
14

Clang 또는 GCC의 Darwin 백엔드를 사용하여 OSX 용 실행 파일을 만들 때 -mmacosx-version-min=version 플래그를 사용하여 실행 파일이 실행될 OSX의 가장 빠른 버전을 설정할 수 있습니다.바이너리가 컴파일 된 최소 OSX 버전 결정

플래그를 컴파일하는 데 사용 된 특정 실행 파일에서 추적 할 수있는 방법이 있습니까? 나는. 주어진 실행 파일의 대상이되는 최소 OSX 버전을 결정하는 방법이 있습니까?

+1

기록을 위해 Apple은 GPLv3으로 라이센스가 변경되어 GCC에 기부하지 않았습니다. 가능할 때마다 Clang/LLVM을 사용하십시오. –

답변

27

otool -l /path/to/binary을 사용하고 LC_VERSION_MIN_MACOSX load 명령을 검사하십시오. 특히 버전 필드 있어야 10.7 타겟팅 배포 10.8 SDK 컴파일 된 바이너리 반면

Load command 9 
     cmd LC_VERSION_MIN_MACOSX 
    cmdsize 16 
    version 10.8 
     sdk 10.8 

:

예를 들어, 전개 대상과 10.8 SDK로 컴파일 된 바이너리 (-mmacosx-version-min) 10.8이 같은 LC_VERSION_MIN_MACOSX 있어야

Load command 9 
     cmd LC_VERSION_MIN_MACOSX 
    cmdsize 16 
    version 10.7 
     sdk 10.8 
+0

정적 라이브러리 (".a"파일)에 대해이 정보를 얻을 수있는 방법이 있습니까? –

+0

이것은 정적 라이브러리 (.a 파일)에도 적용됩니다. 라이브러리에있는 각 오브젝트마다로드 명령이 표시됩니다. Mac 용 'MachOView'라는 멋진 UI 응용 프로그램이있어 바이너리를 편리하게 탐색하고로드 명령을 쉽게 검색 할 수 있습니다. –

관련 문제