Normalerweise würde ich eine vorkompilierte PHP-Binärdatei verwenden, aber ich muss für einen bestimmten geschäftlichen Bedarf aus dem Quellcode erstellen. (Ich bin nicht der Typ, der Open-Source-Anwendungen nur zum Spaß kompiliert.)
Ich baue auf OS X 10.6 und stoße auf folgenden Fehler, wenn ich versuche make
PHP 5.2.10 als ein Apache-Modul ( --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
Diese Symbole sind Teil von libresolv
die unter folgender Adresse zu finden ist /usr/lib/libresolv.dylib
unter OS X (und das schon seit mindestens 10.4). Beachten Sie, dass *.dylib
Dateien sind das Mac-Äquivalent zu *.so
Dateien auf Linux, und ich habe erfolgreich kompiliert in libiconv.dylib
bereits durch die Übergabe --with-iconv=shared,/usr
a ./configure
die ähnliche Linker-Fehler für die iconv
Bibliothek.
Wenn ich laufe ./configure
erkennt es /usr/include/resolv.h
und aktiviert es im Makefile. Allerdings kann ich nicht scheinen, um herauszufinden, wie die gemeinsam genutzte Bibliothek zu bekommen, um in richtig zu verknüpfen. Irgendwelche Tipps, wie man das zum Laufen bringt? Ich habe noch nie etwas wie die Übergabe von benutzerdefinierten Linker-Flags an ./configure
und Google hat mir bei diesem Problem leider nicht weiterhelfen können.
Edit : Ich baue von dieser TAR-Download falls jemand versuchen möchte, den Fehler unter Snow Leopard zu reproduzieren.