J'essaie de compiler PHP 5.6.1 sur mon MacBook Pro mais je n'arrive pas à résoudre tous les problèmes.
Je suis coincé avec le message d'erreur à make:
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:138: recipe for target 'libs/libphp5.bundle' failed
make: *** [libs/libphp5.bundle] Error 1
J'ai compilé Apache v. 2.4.10 à partir du source avec les options de configuration suivantes:
sudo ./configure --prefi=/usr/local/apache2 --enable-so --enable-modules=most
Apache fonctionne normalement.
Mes options de configuration pour PHP:
sudo ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --disable-ipv6 --enable-dtrace --with-zlib --with-curl=/usr/local/cURL --enable-ftp --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-opcache=no
Je ne peux pas passer le processus de fabrication. J'ai tout essayé: sudo make clean
ça n'aide pas. J'ai réinstallé Xcode et CommandLineTools. Et j'ai essayé tout ce que je pouvais trouver en cherchant sur le Web, mais sans succès.
Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas?
Mon dernier recours serait de réinstaller des francs-tireurs (si quelque chose était écrasé ou cassé), mais c’est le dernier recours que je souhaite reprendre et tout recommencer à zéro.
Merci pour votre aide.
Dans l’attente de mes recherches: PHP ne renvoie que l’erreur lorsque vous essayez de le configurer avec mysqli.
Undefined symbols for architecture x86_64:
"_dns_free", referenced from:
_zif_dns_check_record in dns.o
_zif_dns_get_record in dns.o
_zif_dns_get_mx in dns.o
"_dns_open", referenced from:
_zif_dns_check_record in dns.o
_zif_dns_get_record in dns.o
_zif_dns_get_mx in dns.o
"_dns_search", referenced from:
_zif_dns_check_record in dns.o
_zif_dns_get_record in dns.o
_zif_dns_get_mx in dns.o
"_res_9_dn_expand", referenced from:
_php_parserr in dns.o
_zif_dns_get_mx in dns.o
"_res_9_dn_skipname", referenced from:
_zif_dns_get_record in dns.o
_zif_dns_get_mx in dns.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libs/libphp5.bundle] Error 1
Qu'est-ce que je rate?
Réponses:
J'ai réussi à trouver le problème.
Supprimez l'installation précédente, puis:
--with-mysqli
: J'ai utilisé le pilote natif MySql (omis le chemin du dossier)Donc, lorsque vous oubliez d’ajouter un module à votre compilation initiale et que vous êtes bloqué par une sorte d’erreur bizarre, supprimez l’ancienne instance qui a été installée avec succès et faites le
./configure ; make clean ; make ; make install
juste pour être sûr :)Merci à David Parker de m'avoir aidé à résoudre le problème.
Merci David.
la source