我想在php中创建一个可以通过gmail地址发送和接收电子邮件的程序。我最初在运行OS X 10.4 Tiger的PPC Mac上使用XAMPP服务器,但它没有我需要的ssl支持。因此,我尝试设置一个(更新的)Apache服务器,因为我的mac附带的服务器已经过时了。通过从源代码编译,我已经安装了Apache服务器(2.2),php的imap扩展,以及php的openssl扩展。 (虽然我不知道是否需要。)
我像这样运行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.12目录中的INSTALL文件中的指示执行了“make”命令。这导致:
collect2:ld返回1退出状态
make: * [libs / libphp5.bundle]错误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
答案 0 :(得分:1)
我也遇到了这个问题,我已经付出了很多努力解决了这个问题。我正在PHP5.5.12
上安装OS X 10.9.2
。
默认的Makefile会在libiconv.2.dylib
下找到/usr/lib/
并带有声明
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
但是,对于PHP,/usr/lib/
中的OS X
下没有适当的libiconv和正确的架构。我想该文件夹下的默认libiconv.2.dylib
支持32位架构。
所以,我们现在知道问题到底是什么。我们有不同的方法来解决这个问题。
(不推荐)使用配置--prefix=/usr
安装最新的libiconv(可从gnu-libiconv(https://www.gnu.org/software/libiconv/#downloading)获取)
但这种方式可能会导致其他更难的问题。因为OS X需要原始libiconv.2.dylib
。更改后,许多应用程序,包括QQ,TeamViewer和x86支持的应用程序都无法再打开。他们立刻坠毁了。如果你真的遇到这种情况,不要担心,它可以解决。你可以查看我的gist.github.com/Yougmark。无论如何,可以安装php。
(推荐)使用配置--prefix=/usr/local
安装最新的libiconv(可从[gnu-libiconv]获取)
然后将$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。
答案 1 :(得分:0)
似乎未安装iconv
库。除非您需要,否则您可以尝试使用--without-iconv
配置选项禁用支持。
希望有所帮助。
答案 2 :(得分:0)
请注意,我必须运行" make clean"更改我的Makefile以使其正常工作