Я хочу скомпилировать приложение, использующее libyaml. Я успешно его построил в OS X 10.10. Но после обновления до OS X 10.11 я получил сообщение об ошибке ld: library not found for -lyaml
. libyaml устанавливается на Homebrew и размещается на /usr/local/lib
. Я могу найти libyaml.dylib
в /usr/local/lib
.OS X 10.11 библиотека не найдена
Я сделал следующее:
csrutil disable
к disalbe системы защиты целостности, которая предотвращает ссылки на внешние библиотеки в восстановлении ОСexport C_INCLUDE_PATH=/usr/local/include
для поиска для заголовка файла libyamlexport DYLD_LIBRARY_PATH=/usr/local/lib
для ищет динамическая библиотека libyaml, то естьlibyaml.dylib
но все же получил такое же сообщение об ошибке.
Run otool -L /usr/local/lib/libyaml.dylib
получил:
/usr/local/lib/libyaml.dylib:
/usr/local/lib/libyaml-0.2.dylib (compatibility version 3.0.0, current version 3.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)
Платформа: OS X 10,11, Xcode 7.0.1
Как решить эту проблему?
Что такое 'csrutil'? Что делает 'C_INCLUDE_PATH'? Еще несколько тегов помогут понять, как вы создаете свой исполняемый файл и что передается компоновщику. – Droppy
Кто-то сказал мне, что SIP не позволит связывать внешние динамические библиотеки. Позвольте мне отключить его. 'C_INCLUDE_PATH' предназначен для поиска файлов заголовков libyaml. – geeker
Что такое «SIP»? Вы действительно оставляете много деталей, которые могли бы помочь кому-то помочь вам. – Droppy