dyld: символ не найден: __ZdaPvm - запуск KING в Mac OS X
У меня проблема с запуском KING на Mac OS X Я думаю, это связано с ошибкой ссылки dyld. Кто-нибудь есть какие-либо предложения о том, как исправить эту ошибку?
Заранее спасибо.
> ./king -b ./ex/ex.bed
Возвращает:
dyld: Symbol not found: __ZdaPvm
Referenced from: /Users/gaelgarcia/Downloads/./king (which was built for Mac OS X 10.13)
Expected in: /usr/local/lib/libstdc++.6.dylib
in /Users/gaelgarcia/./king
Abort trap: 6
1 ответ
У меня были похожие проблемы при попытке использовать предоставленную предварительно скомпилированную версию Mac. Мне удалось получить работающую версию, собранную из исходного кода, в следующем каталоге:
clang++ -L /opt/local/lib/libomp/ -lm -lz -O2 -fopenmp -o king *.cpp
сначала установив libomp в вышеуказанный каталог. Я использую Macports, поэтому я сделал это с
port install libomp
Для пользователей Homebrew, похоже, рекомендуется просто установить llvm
, который теперь включает поддержку OpenMP напрямую.
РЕДАКТИРОВАТЬ: установив llvm
через доморощенный (brew install llvm
), команда, которая правильно собрала и запустила KING на моей Mac OS 10.12:
/usr/local/Cellar/llvm/6.0.0/bin/clang++ -I /usr/local/Cellar/llvm/6.0.0/include -L /usr/local/Cellar/llvm/6.0.0/lib -O2 -fopenmp -lm -lz -o king *.cpp
Запуск недавно построенного исполняемого файла с примером .bed
файл предоставлен:
> ./king -b ../ex/ex.bed
KING 2.1.3 - (c) 2010-2018 Wei-Min Chen
The following parameters are in effect:
Binary File : ../ex/ex.bed (-bname)
Для таких, как я, ищущих ответ спустя годы, мне удалось решить эту проблему, установив gcc с Homebrew.
brew installgcc
который включает libgfortran. Возможно, в этом нет необходимости, поскольку dyld был установлен в Anaconda, но я обнаружил, что это самый простой способ заставить King работать на моем Mac.
Изменить: мне также пришлось установить DYLD_LIBRARY_PATH
в моем профиле bash, перейдя
nano ~/.bash_profile
и добавление
export DYLD_LIBRARY_PATH=/opt/local/lib/libgcc/
или где угодно динамическая библиотека libgcc_s.1.dylib
когда вы ищете его на своем компьютере.