Macos 使用install\u name\u工具修复动态库文件中的路径 我试图在更新OS到EL CAPCAN后编译我的C++项目。然而,在这一过程中,我遇到了一些障碍: dyld: Library not loaded: pathB/libIceUtil.34.dylib Referenced from: pathA/libSlice.34.dylib Reason: image not found
问题是Macos 使用install\u name\u工具修复动态库文件中的路径 我试图在更新OS到EL CAPCAN后编译我的C++项目。然而,在这一过程中,我遇到了一些障碍: dyld: Library not loaded: pathB/libIceUtil.34.dylib Referenced from: pathA/libSlice.34.dylib Reason: image not found,macos,dynamic-linking,dylib,otool,install-name-tool,Macos,Dynamic Linking,Dylib,Otool,Install Name Tool,问题是pathB不存在。当我运行otool-lpatha/libIceUtil.34.dylib时,我得到 pathA/libIceUtil.34.dylib: pathB/libIceUtil.34.dylib (compatibility version 0.0.0, current version 0.0.0) install_name_tool-更改路径b/libIceUtil.34.dylib pathA/libIceUtil.34.dylib pathA/libIceUtil.34
pathB
不存在。当我运行otool-lpatha/libIceUtil.34.dylib
时,我得到
pathA/libIceUtil.34.dylib:
pathB/libIceUtil.34.dylib (compatibility version 0.0.0, current version 0.0.0)
install_name_tool-更改路径b/libIceUtil.34.dylib pathA/libIceUtil.34.dylib pathA/libIceUtil.34.dylib
无法解决问题。提到使用libtool
。知道如何解决此问题吗?安装工具名称更改的第一个参数不正确(它与打印的内容不匹配)。使用:
您想将其更改为什么?@特洛伊木马
/Volumes/Data/builder/
前缀-->/Users/xeroqu/lib/
前缀。我也修改了这个问题。你不想让它相对于可执行文件吗?@trojanfoe不一定。我想修复这些路径…install\u name\u tool
是要使用的工具。你是对的,因此+1。然而,我犯了一个可怕的错误,复制、更改项目名称并粘贴在这里——所以答案不是我想要的。这次我简化了问题。对不起,麻烦了。我不知道还有什么好建议的。我过去曾成功地使用install\u name\u tool
解决过此类问题。它可能与库本身中的依赖库有关……有趣的是,它对可执行文件不存在问题,但对dylibs不存在问题。谢谢你的提示
install_name_tool -change \
/Volumes/Data/builder/Proj/gcc4/thirdparty/Ice-3.4.2-x86_64/lib/libIceUtil.34.dylib \
/Users/xeroqu/lib/Proj/gcc4/thirdparty/Ice-3.4.2-x86_64/lib/libIceUtil.34.dylib \
/Users/xeroqu/lib/Proj/gcc4/thirdparty/Ice-3.4.2-x86_64/lib/libIceUtil.34.dylib