使用install_name_tool修复dylib文件中的路径

时间:2015-10-23 06:53:23

标签: macos dynamic-linking dylib otool install-name-tool

我在将操作系统更新到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提及{{3}}。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

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