OSX环境下修改动态库dylib默认加载路径的方法。
最近遇到的一个问题,在Xcode里配置好了链接的库以及动态库的Search path,但运行时仍会报错,是去了另外一个地方去加载库了,错误格式如下:
1 | dyld: Library not loaded: /usr/local/Cellar/libxxx/xxx.dylib |
在dylib中有一个默认的加载路径,可以通过以下方法来查看:
1 | otool -L xxx.dylib |
可以通过以下方法来修改,如将xxx.dylib
默认加载路径改为/usr/local/lib/xxx/xxx.dylib
:
1 | install_name_tool -id /usr/local/lib/xxx/xxx.dylib xxx.dylib |
此时再查看默认加载路径即是新设置的路径,并且在Xcode中也可以正确加载了。