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
  • 第一个参数是你想要的路径
  • 第二个参数是文件的真实路径,所以从Finder中拖入文件

此外,您可能还需要更改依赖项名称,您可以使用相同的工具来执行此操作:

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

您可以使用 otool 检查当前名称。因此,您可以像这样使用 otool 验证更改: otool -D libssh2.1.dylib以及依赖项otool -L libssh2.1.dylib

或者您可以获取源代码并使用其中的当前路径自己重建它。

如果您需要相对路径,您应该考虑将安装名称更改为 @rpath/libssh2.1.dylib 并将路径添加到项目设置中。

于 2011-12-30T20:34:30.123 回答