首页 > 解决方案 > 导出 DYLD_LIBRARY_PATH 导致 libncurses.5.4.dylib 未加载错误

问题描述

在我的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

作为比较:当我export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH在我的OS X 10.5.6 Mac 上做同样的事情时,它没有给出任何错误。所以我认为它也应该适用于我的OS X 10.7.4 Mac。

我应该怎么做才能让它工作?谢谢你。

标签: macososx-lionncursesdyld

解决方案


Ops! When I checked the /usr/local/lib directory, I've found that there were libncurses.dylib files there and because the exported DYLD_LIBRARY_PATH was loading them and they were obviously not binary compatible with the system, I was getting the error.

After I deleted those obselete libncurses.dylib files under /usr/local/lib the error is gone. Problem solved.


推荐阅读