2016-02-05 3 views
0

У меня есть программа, которая ссылается на библиотеку «libao_optimization.dylib». Когда он работает, большую часть времени это нормально. Но время от времени, я получаю следующее сообщение об ошибке:Mac OS X динамический компоновщик работает спорадически

dyld: Library not loaded: libao_optimization.dylib 
    Referenced from: /User/gw/local/bin/tst_simulated_ngs_image_and_otfs 
    Reason: image not found 

Соответствующие пути находятся в DYLD_LIBRARY_PATH. Я даже попытался поместить полный путь в исполняемый файл с

install_name_tool -change ... 

Но эта ошибка возникает только иногда. В других случаях библиотека загружается нормально, и программа запускается. Кто-нибудь испытал это на Mac?

+0

Действительно ли каталог '/ User/gw/...', а не '/ Users/gw/...'? Это необычно для Mac; каталог '/ Users /' является владельцем домашних каталогов по умолчанию. Остерегайтесь Mac OS X 10.11 El Capitan и SIP (защита целостности системы); вы не можете так легко создавать папки в произвольных местах на Эль-Капитане. Является ли папка '/ User' сетевой или какой-либо? (Кроме того, Apple действительно ошибалась в том, что «Libaray» нравится? Copy'n'paste намного лучше, это избавляет нас от удивления, что вы действительно видите!) –

ответ

0

otool - это способ отладки пустых путей. Я обычно проверить с

otool -L exeFileName 

, а затем настроить пути с

install_name_tool -change 

Для новых машин, настроить окр Var

DYLD_LIBRARY_PATH 

Когда я все еще получаю ошибки, я тест, чтобы увидеть если статическая версия работает без ошибок. Например, для некоторых подталкивание dyld LIBS, это будет работать:

set(Boost_USE_STATIC_LIBS ON) 

Если ошибки сохраняются, то я знаю, его не проблема пути.

 Смежные вопросы

  • Нет связанных вопросов^_^