在OS X上从源代码构建PHP 5.2.10时链接libresolv的错误

Qui*_*lor 5 php automake compilation

首先,我通常会选择使用PHP的预编译二进制文件,但我需要根据特定的业务需求从源代码构建.(我不是那种仅为了解决而编译开源应用程序的类型.)

我正在OS X 10.6上构建,当我尝试将makePHP 5.2.10作为Apache模块(--with-apxs2)时遇到以下错误:

Undefined symbols:
  "_res_9_dn_expand", referenced from:
      _zif_dns_get_mx in dns.o
  "_res_9_search", referenced from:
      _zif_dns_get_mx in dns.o
      _zif_dns_check_record in dns.o
  "_res_9_dn_skipname", referenced from:
      _zif_dns_get_mx in dns.o
      _zif_dns_get_mx in dns.o
ld: symbol(s) not found
Run Code Online (Sandbox Code Playgroud)

这些符号的一部分libresolv,其被包括在/usr/lib/libresolv.dylibOS X上(和一直以来至少 10.4).请注意,*.dylib文件是在Mac相当于*.so在Linux上的文件,我已经成功编译libiconv.dylib通过传递已--with-iconv=shared,/usr./configure,这消除了对类似的链接错误iconv库.

当我运行时./configure,它会/usr/include/resolv.h在makefile中检测并启用它.但是,我似乎无法弄清楚如何正确链接共享库.有关使其工作的任何提示?我从来没有做过像传递自定义链接器标志那样的事情./configure,不幸的是谷歌对这个问题一直没有帮助.


编辑:我正在构建这个TAR下载,如果有人想尝试复制Snow Leopard上的错误.

Sea*_*ney 4

尝试将 -lresolv 添加到您的 Makefile 中。

希望这可以帮助。我从这次讨论中得到了建议。