这是otool -L libtarget.dylib
的当前输出 libA.dylib
libB.dylib
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.5.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
我能够删除libc++.dylib
依赖关系,但我无法弄清楚如何移除libSystem.dylib
。
在链接到CMake中的共享库时,有没有办法删除默认的/usr/lib
路径?
答案 0 :(得分:0)
这将是困难的,即使是最简单的C示例链接到libSystem.B
例如,如果你执行
echo "int main() { return 0; }" | gcc -xc -
接着是
otool -L a.out
它会显示您对libSystem.B
a.out:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
另一种方法是使用rpath
:
install_name_tool -change /usr/lib/libSystem.B.dylib @rpath/libSystem.B.dylib a.out