如何满足所需的依赖关系以便在 Mac OS X 上安装 Expect pecl 扩展?

如何满足所需的依赖关系以便在 Mac OS X 上安装 Expect pecl 扩展?

我正在尝试安装 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 安装脚本?”但这是另一块板的...:)

相关内容