Bedeutung der otool „Caps“ Feld
Frage
Wenn ich laufen otool -favh some/library.so
gibt es folgende Felder:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC_64 X86_64 ALL LIB64 EXECUTE 12 1552 NOUNDEFS DYLDLINK TWOLEVEL
- Was ist die Bedeutung der "Caps" Spalte?
- Kann die Kappen Spalte unterschiedlich Ursache Verknüpfung Defekt?
Lösung
Gute Frage. Nicht überall dokumentiert, wie es scheint. Dank Open-Source, obwohl, war die Antwort für Otools im Quellcode zur Verfügung, so dass Sie es sehen können, wenn Sie mehr Informationen benötigen.
Das Feld stellt die Fähigkeit Bits der CPU (dh cpusubtype & CPU_SUBTYPE_MASK
). So ist es wirklich eine Teilmenge des cpusubtype Feld, dass die Informationen leichter zugänglich zu machen, nehme ich an. Es ist etwas, der Otools Programmierer (n) setzte in, und nicht ein Teil der Mach-O-Header.
Würde der Kappen Spalte unterschiedlich sind verursachen Verknüpfung Defekt?
Nicht sicher, ob ich Ihre Frage hier, Verknüpfung, was genau? Mit zwei für verschiedene Prozessoren (also möglicherweise mit unterschiedlichen „Caps“ Feldern) zusammengestellt Bibliotheken und zu versuchen, sie miteinander zu verknüpfen könnte ein Problem sein, offensichtlich. Ich würde ich mehr mit dem „CPUTYPE“ Feld in dieser Hinsicht, though. Es wird Sie wahrscheinlich einen Hinweis geben, wenn Sie x86-Code mit ARM-Code verknüpfen (mehr als die „Caps“ Feld, ich würde vermuten).
Im Allgemeinen würde ich nicht konzentrieren viel auf einem Feld, dass niemand auch Sorgen in all Unterlagen zu erwähnen, es sei denn, Ihre Situation es verlangt.