2011-07-08 50 views
5

首先,我不是程序員。我是一名網絡管理員,他被要求爲我們的網頁設計師編寫支持SSH2的PHP。使用SSH2 pecl擴展編譯PHP的問題

我一直在關注這個步行通過編譯PHP的Windows: https://wiki.php.net/internals/windows/stepbystepbuild

編譯,我使用: 的Microsoft Visual C++ Studio 2008速成 的Microsoft Windows SDK 6.1

我已經下載所有必需的libraries和SSH2所需的庫。我已經提取並將它們放置在'deps'文件夾中。我還下載了SSH2擴展代碼,並將其放在我在'x86'目錄下創建的'pecl'文件夾中。

它看起來像編譯器沒有找到我添加的庫。任何幫助將不勝感激!謝謝!

這裏有一些錯誤嘗試使用下面的命令來編譯時,我得到的:

C:\php-sdk\php53dev\vc9\x86\php5.3-201107071830>configure --enable-cli --with-ss 
h2 

Checking for library libjpeg_a.lib;libjpeg.lib ... <not found> 
WARNING: gd not enabled; libraries and headers not found 

Checking for zlib.h ... <not found> 
Checking for zlib.h ... <not found> 
WARNING: zip not enabled; libraries and headers not found 


Checking for library libiconv_a.lib ... <not found> 
Checking for library libiconv.lib ... <not found> 
Checking for library iconv_a.lib ... <not found> 
Checking for library iconv.lib ... <not found> 
WARNING: iconv support can't be enabled, libraries or headers are missing 

Checking for library zlib_a.lib;zlib.lib ... <not found> 
WARNING: zlib support can't be enabled, zlib is missing 


Checking for library libssh2_a.lib;libssh2.lib ... <not found> 
WARNING: ssh2 not enabled: libraries or headers not found 

Checking for library libxml2_a_dll.lib;libxml2_a.lib ... ..\deps\libxml2-2.7.3.w 
in32\lib\libxml2_a_dll.lib 
Checking for library libiconv_a.lib;iconv_a.lib;libiconv.lib;iconv.lib ... <not 
found> 

WARNING: libxml support can't be enabled, iconv or libxml are missing 

WARNING: simplexml not enabled; libraries and headers not found 

WARNING: xml support can't be enabled, libraries or headers are missing 

WARNING: dom support can't be enabled, libxml is not enabled 
+0

我想你需要顯示編譯器庫路徑所在的位置。然後編譯器至少應該找到你已經下載的那些庫。 – hakre

+0

有誰知道必須顯示編譯器庫路徑的位置?我似乎無法找到任何可行的方法。我正在使用Windows SDK命令行。當我在Visual C++ 2008 Express的圖形界面中添加庫路徑時,它不能解決問題......謝謝 –

+0

您是否能夠解決此問題?我遇到了類似的問題,除了我的問題以LNK問題的形式出現在命令行外: –

回答

0

皮埃爾做一些構建,並使它們可在這裏:http://downloads.php.net/pierre/,作爲official place正在進行中。

如果您需要特定的內容,請在IRC上聯繫他:#php.pecl @ efnet。通常他願意投入一些時間來幫助構建。

無論如何,有一些ssh2版本,只是在它後面的瀏覽器CTRL + F。

2

對於SSH2: (更新後的URL,我們將所有版本放在pecl/snaps下,也可以找到一些快照構建)。

http://windows.php.net/downloads/pecl/releases/ssh2/

對於您的構建錯誤,你缺少的所有默認庫。但是,如果你想要的是SSH2,使用:

配置 - 禁用所有--enable-CLI --with-SS2 =共享

(ZTS或NTS可能需要ZTS選項以及)

+0

這絕對有幫助,我發現我需要那裏的PHP 5.4,但其他人會怎麼知道這個?另外,它不會編譯?請查看我在原帖中發佈的評論。我很確定自己擁有的所有東西都正確,但由於某些原因,鏈接程序無法解析libssh2_a.lib文件中的外部符號。好吧,謝謝,但我非常感謝您提供關於鏈接器問題的任何反饋。 –

0

你錯過了依賴關係,即libssh2。您必須先編譯它,然後將include包含在lib路徑中的include路徑和lib文件中。對於PHP SDK,這分別是deps/libdeps/include

然後再次運行configure