我正在尝试安装 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
.安装命令的完整输出是这里。
据我所知,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 安装脚本?”但这是另一块板的...:)