У меня есть общая библиотека C ++, вызываемая из моей программы на Python. C ++ lib скомпилирован с HDF5, который я установил с помощью homebrew на OS X, поэтому он находится в /usr/local/lib
. Теперь проблема в том, что у меня также установлены PyTables, который включает в себя более старую версию libhdf5, установленную где-то в /Library/Frameworks/EPD64.framework/Versions/Current/...
Я могу прекрасно скомпилировать и связать свою библиотеку, и otool -L
действительно указывает на /usr/local/lib/libhdf5.dylib
. Однако, когда я пытаюсь запустить его из Python, возникает ошибка несоответствия версий. Каким-то образом компоновщик времени выполнения загружает старую библиотеку hdf5.
Один из обходных путей - вместо этого создать hdf5 как статическую библиотеку, но я бы хотел найти более подходящее решение - как я могу убедить компоновщик среды выполнения использовать более новую библиотеку? Я уже пытался установить DYLD_LIBRARY_PATH, но это просто сломало все остальное (Python и MacVim не запускались).