2012-05-05 91 views
0

我想在php中創建一個可以通過Gmail地址發送和接收電子郵件的程序。我最初在運行OS X 10.4 Tiger的PPC Mac上使用XAMPP服務器,但它沒有我需要的ssl支持。正因爲如此,我試圖建立一個(更新的)Apache服務器,因爲我的MAC附帶的服務器已經過時了。通過編譯源代碼,我已經安裝了Apache服務器(2.2),php的imap擴展以及php的openssl擴展。 (雖然我如果這是需要的就不知道了。)編譯PHP錯誤:「make:*** [libs/libphp5.bundle]錯誤1」

我跑了這樣configure命令:

./configure --with-imap=/usr/local/imap-2007f/ --enable-sockets --with-imap-ssl=/usr/local/ssl --with-openssl=/usr/local/ssl --with-apxs2=/usr/local/apache2/bin/apxs --with-kerberos

我那時的「製造」命令,在php.3.5 INSTALL文件奉命.12目錄。這導致:

collect2: ld returned 1 exit status
make: * [libs/libphp5.bundle] Error 1

我研究這個錯誤,似乎從大量的,不會出現與我的項目不同的東西造成的。首先,他們似乎都使用(或嘗試使用)MySQl。爲了我的目的,我不需要那個。我正在尋找一種方法來回到編程,以便我可以完成我的程序。

感謝您的幫助!

編輯:以下是完整的錯誤消息:

/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: Undefined symbols: 
_iconv 
collect2: ld returned 1 exit status 
make: *** [libs/libphp5.bundle] Error 1 
+1

也就是說僅代表錯誤發生較早;對於錯誤是什麼都沒有說。你能提供更多細節嗎? – geekosaur

+0

謝謝,告訴我,這是否更好。 – jstrieb

回答

0

好像沒有安裝iconv庫。除非您需要,否則可以嘗試使用--without-iconv配置選項禁用支持。

希望有所幫助。

+0

這工作,但後來我得到了一個不同的錯誤。現在就開始工作。 '/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld:未定義的符號: _EVP_CIPHER_CTX_block_size _EVP_CIPHER_block_size _EVP_CIPHER_iv_length _EVP_CIPHER_key_length _EVP_MD_size collect2:LD返回1個退出狀態 化妝:*** [ sapi/cli/php] Error 1' – jstrieb

+0

@ user1376127你可以發佈你的'configure'選項嗎? – g13n

1

我也遇到過這個問題,我已經解決了它,並付出了很多努力。我在OS X 10.9.2上安裝PHP5.5.12

缺省的Makefile會發現/usr/lib/libiconv.2.dylib with語句

19 MH_BUNDLE_FLAGS = -bundle -bundle_loader /usr/sbin/httpd -L/usr/lib -laprutil-1 -lldap -llber -llber -lexpat -liconv -lsqlite3 -lldap -llber -llber -L/usr/lib -lapr-1 -lpthread

OS X有一個與正確的架構沒有適當的libiconv的/usr/lib/下PHP。我猜想該文件夾下的默認libiconv.2.dylib是32位體系結構支持。

因此,我們知道現在到底是什麼問題。我們有不同的方法來解決這個問題。

  1. (不推薦)安裝最新libiconv的(購自GNU-libiconv的(https://www.gnu.org/software/libiconv/#downloading)),與配置--prefix=/usr

    但這種方式也可以導出其他更難的問題。因爲OS X需要原始libiconv.2.dylib。在我改變它之後,包括QQ,TeamViewer和這種x86支持的應用程序在內的許多應用程序無法再被打開。他們立即墜毀。如果你真的遇到這種情況,不要擔心,它可以解決。你可以檢查我的gist.github.com/Yougmark。無論如何,PHP可以安裝。

  2. (推薦)安裝最新libiconv的(可從[GNU-libiconv的])與配置--prefix=/usr/local

    然後$make之前修改Makefile下面的語句:

    19 MH_BUNDLE_FLAGS = -bundle -bundle_loader /usr/sbin/httpd -L/usr/local/lib -laprutil-1 -lldap -llber -llber -lexpat -liconv -lsqlite3 -lldap -llber -llber -L/usr/local/lib -lapr-1 -lpthread

    講究到-L/usr/lib兩個位置,將它們更改爲-L/usr/local/lib

現在,使用新的PHP製作和安裝,並享受! :)對於任何細節,你可以參考我的gist

0

注意,我不得不跑改變我的Makefile文件後,「使清潔」得到它的工作