2015-10-31 1 views
0

La vérification des deux premières lignes de la sortie otool -L /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO montre que la bibliothèque est apparemment liée à elle-même. Y at-il une raison à cela? Pourquoi cela a-t-il même un sens?Pourquoi est-il logique de lier une bibliothèque à elle-même?

/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO: 
     /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO (compatibility version 1.0.0, current version 1.0.0) 
     /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0) 
     /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 600.0.0) 
     /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 48.0.0) 
     /System/Library/PrivateFrameworks/AppleVPA.framework/Versions/A/AppleVPA (compatibility version 1.0.0, current version 1.0.0) 
     /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1252.0.0) 
     /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1255.0.0) 
     /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 728.4.0) 
     /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG (compatibility version 1.0.0, current version 1.0.0) 
     /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib (compatibility version 1.0.0, current version 1.0.0) 
     /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib (compatibility version 1.0.0, current version 1.0.0) 
     /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib (compatibility version 1.0.0, current version 1.0.0) 
     /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib (compatibility version 1.0.0, current version 1.0.0) 
     /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib (compatibility version 1.0.0, current version 1.0.0) 
     /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib (compatibility version 1.0.0, current version 1.0.0) 
     /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) 
     /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) 
     /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface (compatibility version 1.0.0, current version 1.0.0) 
     /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0) 
     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1) 

Répondre

1

La première ligne de la sortie de otool -L est que le chemin du fichier qu'elle fonctionne sur, telle qu'adoptée sur la ligne de commande.

La deuxième ligne (la première en retrait) est et non une dépendance. Il montre le nom d'installation de la bibliothèque. En d'autres termes, il affiche la valeur de la commande de chargement LC_ID_DYLIB, et non l'une des commandes LC_LOAD[_WEAK]_DYLIB.

De la page man otool (qui ne sont pas dans la bibliothèque de référence en ligne d'Apple pour une raison quelconque):

-L  Display the names and version numbers of the shared libraries 
      that the object file uses, as well as the shared library ID if 
      the file is a shared library. 

Note: « ainsi que l'ID de bibliothèque partagée si le fichier est une bibliothèque partagée ".

+0

oh, c'est logique. Très confus, cependant. – cel