2010-09-25 17 views
3

J'essaye de lier la bibliothèque libssh2.1.dylib à mon projet d'iPhone Xcode mais j'obtiens cette erreur quand j'essaye de la relier. Si je n'ajoute pas ceci comme cadre, je reçois une erreur Symboles non trouvés. Maintenant /Users/Matt/Documents/Development/iPhoneApps/Portscanner/lib/libssh2.1.dylib n'est pas le chemin correct vers ce fichier. J'ai téléchargé la bibliothèque sur Internet et c'est le chemin de l'ordinateur de l'auteur. J'ai le fichier situé dans un endroit totalement différent. Comment changer la référence de la voie? Heres l'erreur que je reçois:Dyld: Bibliothèque non chargée

dyld: Library not loaded: /Users/Matt/Documents/Development/iPhoneApps/PortScanner/lib/libssh2.1.dylib 
Referenced from: /var/mobile/Applications/5353E047-05FE-42E4-8F32-617E8D02A11D/Port  Scanner.app/Port Scanner 
Reason: image not found 
+0

Peut être son peu hors du sujet. Mais jetez un oeil dans le document et obtenez des instructions pour construire et utiliser la bibliothèque libssh2 à utiliser avec votre application iPhone. Uri: https://sites.google.com/site/olipion/cross-compilation/libssh2 – Learner

Répondre

1

Vous pouvez utiliser le install_name_tool pour changer le nom de chemin installé sur un fichier .dylib:

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/install_name_tool.1.html

Exemple de modification d'un nom d'installation:

install_name_tool -id <yourpath>/libssh2.1.dylib /Users/Matt/Documents/Development/iPhoneApps/Portscanner/lib/libssh2.1.dylib 
  • le premier paramètre est le chemin que vous voulez
  • paramètre
  • secondes est le chemin réel au fichier afin de glisser le fichier depuis le Finder

Aussi, vous devrez peut-être changer trop les noms de dépendance, et vous pouvez utiliser le même outil pour le faire:

install_name_tool -change <old path> <new path> <library name> 

Vous pouvez vérifier les noms actuels en utilisant otool. Ainsi, vous pouvez vérifier le changement avec le otool comme ceci: otool -D libssh2.1.dylib et dépendances avec otool -L libssh2.1.dylib

Ou vous pouvez obtenir le code source et de reconstruire vous-même avec le chemin courant en elle.

Si vous avez besoin d'un chemin relatif, vous devriez chercher à changer votre nom d'installation en @ rpath/libssh2.1.dylib et ajouter le chemin d'accès aux paramètres de votre projet.