экспорт DYLD_LIBRARY_PATH вызывает ошибку libncurses.5.4.dylib не загружена - PullRequest
0 голосов
/ 08 ноября 2019

На моем 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.

Что я должен сделать, чтобы он работал? Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2019

Ops! Когда я проверил каталог /usr/local/lib, я обнаружил, что там были libncurses.dylib файлы, и потому что экспортированные DYLD_LIBRARY_PATH загружали их, и они явно не были двоично совместимы с системой, я получил ошибку.

После того, как я удалил эти устаревшие libncurses.dylib файлы в /usr/local/lib, ошибка исчезла. Проблема решена.

...