2012-05-05 79 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文件后,“使清洁”得到它的工作