我正在尝试将库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
答案 0 :(得分:1)
您可以使用install_name_tool更改.dylib文件中已安装的路径名:
更改安装名称的示例:
install_name_tool -id <yourpath>/libssh2.1.dylib /Users/Matt/Documents/Development/iPhoneApps/Portscanner/lib/libssh2.1.dylib
此外,您可能还需要更改依赖项名称,并且可以使用相同的工具来执行此操作:
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并添加项目设置的路径。