在我的 OS X 10.7.4 Mac上,我这样做:
export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH
但是后来我得到了这样的错误:
dyld: Library not loaded: /usr/lib/libncurses.5.4.dylib
Referenced from: /bin/ls
Reason: Incompatible library version: ls requires version 5.4.0 or later, but libncurses.5.4.dylib provides version 5.0.0
Trace/BPT trap: 5
为缓解此问题,我从头开始构建libncurses.5.4.dylib
并将其安装到/usr/local/ncurses-5.9
中,并这样做:
sudo mv /usr/lib/libncurses.5.4.dylib /usr/lib/libncurses.5.4.dylib_BACKUP
sudo ln -s =/usr/local/ncurses-5.9/lib/libncursesw.5.4.dylib /usr/lib/libncurses.5.4.dylib
这个新建的libncurses可以正常工作,但我会尽快
export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH
它返回相同的dyld: Library not loaded: /usr/lib/libncurses.5.4.dylib
作为比较:当我在 OS X 10.5.6 Mac上执行相同的export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH
时,没有任何错误。因此,我认为它也可以在我的 OS X 10.7.4 Mac上运行。
我应该怎么做才能使其正常工作?谢谢。
答案 0 :(得分:0)
糟糕!当我检查/usr/local/lib
目录时,我发现那里有libncurses.dylib
个文件,并且由于导出的DYLD_LIBRARY_PATH
正在加载它们,并且显然与系统二进制不兼容,得到错误。
删除了libncurses.dylib
下的那些过时的/usr/local/lib
文件后,错误消失了。问题解决了。