4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オブジェクトファイルのSDK、Deployment Targetを確認する

Posted at

OS X、iOS、watchOS、tvOSなどのライブラリのSDKやDeployment Targetはotoolを使って確認できる。

otoolコマンド

$ man otool
...
       -l     Display the load commands.
...

今回確認するロードコマンド

  1. OS X
    • cmd LC_VERSION_MIN_MACOSX
  2. iOS
    • cmd LC_VERSION_MIN_IOS
  3. watchOS
    • cmd LC_VERSION_MIN_WATCHOS
  4. tvOS
    • cmd LC_VERSION_MIN_TVOS

サンプル 1

下記の例では、MacOSX10.11.sdk、Deployment Targetが10.11で作成されたバイナリであることがわかる。

$ otool -l `which ls`
...
Load command 9
      cmd LC_VERSION_MIN_MACOSX
  cmdsize 16
  version 10.11
      sdk 10.11
...
  • version: Deployment Target
  • sdk: SDK

サンプル 2

以前に作成したiOS Deployment Targetが5.0のライブラリをXcode 7.3でコンパイルしたとき、以下の警告が表示された。

ld: warning: object file (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.3.0/lib/darwin/libclang_rt.ios.a(chkstk.S.o)) was built for newer iOS version (6.0) than being linked (5.0)

そこでlibclang_rt.ios.aのDeployment Targetを確認した。

$ otool -l /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.3.0/lib/darwin/libclang_rt.ios.a
...
Load command 1
      cmd LC_VERSION_MIN_IPHONEOS
  cmdsize 16
  version 6.0
      sdk n/a
...

するとオブジェクトファイルの個数分、ロードコマンドが表示されるが、いずれもiOS Deployment Targetが6.0であることがわかる。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?