如何滿足所需的依賴關係以便在 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 安裝腳本?”但這是另一塊板的...:)

相關內容