Я пытаюсь установить расширение expect pecl.
Версия ОС = 10.7.3
PHP версии 5.3.10 установлена через macports,
ожидается версия 5.45 установлена через macports
Команда, которую я выполняю:
sudo pecl -d preferred_state=beta install expect
терпит неудачу сld: library not found for -lexpect
Файл libexpect5.45.dylib
находится в /opt/local/lib
. Полный вывод команды install —здесь.
Насколько я могу судить, pecl просто не может найти библиотеку libexpect, я даже пробовал добавлять:
LD_LIBRARY_PATH=/opt/local/lib/expect5.45
LD_LIBRARY_PATH=/System/Library/Tcl/8.5/expect5.45
LD_LIBRARY_PATH=/opt/local/lib
В каждом месте есть expect5.45.dylib
файл. Это не помогло. Может кто-нибудь помочь мне разобраться, как установить это расширение?
решение1
LD_LIBRARY_PATH
не используется в OS X, и эквивалентная переменная окружения не влияет ld
(и может нарушить другие вещи, так как в отличие от Linux это полный путь к библиотеке, что означает, что критические библиотеки, такие как , libSystem.dylib
больше не будут найдены; с другой стороны, sudo
очищает свое окружение, поэтому оно в любом случае не будет работать). Кроме того, это имя библиотеки не будет соответствовать -lexpect
.
Если это имеет значение, port contents expect
на моей системе Lion показывает /opt/local/lib/libexpect.a
статическую библиотеку (и libexpect5.45.a
), но нет dylib. Вы уверены, что она установлена правильно? Проверьте вывод port contents expect
.
решение2
Хорошо, благодаря устранению неполадок и проницательности от @geekosaur ответ таков: "pecl не генерирует правильный скрипт libtool для установки этого расширения на MacOSX", по крайней мере, на моей установке. Я действительно ценю обсуждение и устранение неполадок. Конечно, мой следующий вопрос будет: "Как мне исправить скрипт установки pecl?" Но это для другой доски... :)