質問
走るとき otool -favh some/library.so
次のフィールドがあります:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC_64 X86_64 ALL LIB64 EXECUTE 12 1552 NOUNDEFS DYLDLINK TWOLEVEL
- 「キャップ」列の意味は何ですか?
- Caps列は異なるため、障害をリンクする原因になりますか?
解決
良い質問。どこにも文書化されていないようです。ただし、Open-Sourceのおかげで、回答はOtoolsのソースコードで入手できたため、詳細情報が必要な場合はそこを見ることができます。
フィールドは、CPUの機能ビットを表します(つまり cpusubtype & CPU_SUBTYPE_MASK
)。そのため、その情報をより簡単に利用できるようにするために、実際にはCPusubtypeフィールドのサブセットです。これは、Otoolsプログラマーが入れたものであり、Mach-Oヘッダーの一部ではありません。
Caps列は異なるため、障害をリンクする原因になりますか?
ここであなたの質問があるかどうかはわかりませんが、何をリンクしていますか?さまざまなプロセッサ用にコンパイルされた2つのライブラリ(したがって、おそらく異なる「キャップ」フィールドを使用して)を使用して、それらを一緒にリンクしようとするのは問題になるかもしれません。ただし、その点で「Cputype」フィールドにもっと関心があります。 X86コードをARMコードとリンクする場合、おそらくヒントを与えるでしょう(「キャップ」フィールドよりも多く、推測します)。
一般的に、私はあなたの特定の状況がそれを要求しない限り、誰もどんなドキュメントでも言及することさえ気にしない分野にあまり集中することはありません。
所属していません StackOverflow