Dyld:图书馆未加载

时间:2010-09-25 17:19:29

标签: iphone xcode dylib libssh

我正在尝试将库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

1 个答案:

答案 0 :(得分: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并添加项目设置的路径。