使用 install_name_tool 修复 dylib 文件中的路径
Fix paths in dylib files using install_name_tool
在将 OS 更新到 El Capitan 后,我正在尝试编译我的 C++ 项目。然而,我遇到了一些问题:
dyld: Library not loaded: pathB/libIceUtil.34.dylib
Referenced from: pathA/libSlice.34.dylib
Reason: image not found
问题是 pathB
不存在。当我 运行 otool -L pathA/libIceUtil.34.dylib
时,我得到
pathA/libIceUtil.34.dylib:
pathB/libIceUtil.34.dylib (compatibility version 0.0.0, current version 0.0.0)
install_name_tool -change pathB/libIceUtil.34.dylib pathA/libIceUtil.34.dylib pathA/libIceUtil.34.dylib
没有解决问题。 article 提到使用 libtool
。知道如何解决这个问题吗?
install_name_tool -change
的第一个参数不正确(它与 otool -L
打印的内容不匹配)。使用:
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
在将 OS 更新到 El Capitan 后,我正在尝试编译我的 C++ 项目。然而,我遇到了一些问题:
dyld: Library not loaded: pathB/libIceUtil.34.dylib
Referenced from: pathA/libSlice.34.dylib
Reason: image not found
问题是 pathB
不存在。当我 运行 otool -L pathA/libIceUtil.34.dylib
时,我得到
pathA/libIceUtil.34.dylib:
pathB/libIceUtil.34.dylib (compatibility version 0.0.0, current version 0.0.0)
install_name_tool -change pathB/libIceUtil.34.dylib pathA/libIceUtil.34.dylib pathA/libIceUtil.34.dylib
没有解决问题。 article 提到使用 libtool
。知道如何解决这个问题吗?
install_name_tool -change
的第一个参数不正确(它与 otool -L
打印的内容不匹配)。使用:
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