3

ライブラリ libssh2.1.dylib を iPhone Xcode プロジェクトにリンクしようとしていますが、リンクしようとするとこのエラーが発生します。これをフレームワークとして追加しないと、Symbols not found エラーが発生します。/Users/Matt/Documents/Development/iPhoneApps/Portscanner/lib/libssh2.1.dylib は、そのファイルへの正しいパスではありません。私はライブラリをインターネットからダウンロードし、その著者のコンピュータのパスをダウンロードしました。私はファイルをまったく別の場所に置いています。経路参照を変更するにはどうすればよいですか? エラーは次のとおりです。

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
4

1 に答える 1

1

install_name_tool を使用して、.dylib ファイルのインストール済みパス名を変更できます。

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

インストール名の変更例:

install_name_tool -id <yourpath>/libssh2.1.dylib /Users/Matt/Documents/Development/iPhoneApps/Portscanner/lib/libssh2.1.dylib
  • 最初のパラメーターは、必要なパスです
  • 2 番目のパラメータはファイルへの実際のパスなので、ファイルを Finder からドラッグします。

また、依存関係の名前も変更する必要がある場合があります。同じツールを使用してそれを行うことができます。

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

otool を使用して、現在の名前が何であるかを確認できます。したがって、次のように otool を使用して変更を確認できます otool -D libssh2.1.dylibotool -L libssh2.1.dylib

または、ソース コードを入手して、現在のパスを使用して自分で再構築することもできます。

相対パスが必要な場合は、インストール名を @rpath/libssh2.1.dylib に変更し、そのパスをプロジェクト設定に追加することを検討してください。

于 2011-12-30T20:34:30.123 に答える