Das kompilieren von PHP Intl-Erweiterung auf dem Mac Book Pro (El Capitan 10.11.4)
Ich versuche zu installieren die PHP-Intl-Erweiterung auf meinem neuen Mac (El Capitan 10.11.4) mit PECL, aber es ist eine Verknüpfung Fehler, die während der make
Bühne.
Hier sind die Schritte, die ich nahm:
-
Installiert BIRNE läuft auf Mac
-
Kompiliert und installiert, die ICU-Bibliothek (version 51.2) in
/usr/local/lib
-
Lief dieser Befehl:
sudo pecl install intl
und es war ein Fehler (siehe unten). Ich habe auch versucht das kompilieren der Erweiterung direkt aus dem PHP-source-code ("ext" - Ordner) und erhielt die gleiche Fehlermeldung.
Ich erhalte die folgende Fehlermeldung:
ld: file not found: libicudata.51.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [intl.la] Error 1
ERROR: 'make' failed
Sieht es so aus:
-
Datei fehlt (obwohl Sie weiß, dass das richtige ICU-Bibliothek version zu suchen). Vielleicht ist es wirklich nicht finden können, die Datei. Die
-L
- Schalter und die zugehörigen switches angezeigt, auf den richtigen Pfad/usr/local/lib
Weg. -
Dann gibt es auch eine gewisse Art von Architektur-mismatch. So lief ich
file libicudata.51.dylib
und es scheint die richtige Architektur.
Hier ist, was file
umgestimmt:
$ file /usr/local/lib/libicudata.51.dylib
/usr/local/lib/libicudata.51.dylib: Mach-O 64-bit dynamically linked shared library x86_64
Hat jemand laufen über diese vor? Oder wissen, wie man kompiliert PHP-Intl-Erweiterung auf dem neuen Mac Book Pro (El Capitan 10.11.4)? Ich habe eine Hoffnung für ein paar Tipps, wo Ihr suchen weiter, denn ich bin ein wenig ratlos hier.
- Was passiert, wenn Sie versuchen, kompilieren eine C-stub-Programm (
int main(){return 0;}
) mitcc -licudata -o test test.c
? - Ich habe versucht, wie Sie vorgeschlagen, und die stub -
test.c
Programm kompiliert ohne Fehlermeldung. - Brauchen Sie, um zu verwenden PECL? Möchten Sie vielleicht zu prüfen, mit homebrew, wie es arbeitet sehr effizient. brew.sh
- Tja, gute Frage. Ich habe einen neuen Mac, und nach der Lektüre über die SIP-Zwänge, ich dachte, es könnte am besten sein, einfach installieren Sie die Anwendungen und Bibliotheken individuell. Es könnte auch gut sein, wenn ich will, um mehr zu erfahren über die verschiedenen Schalter und Optionen, zumindest für die software, die ich häufiger verwenden. Zu Ihrem Punkt, konnte ich sehen, dass overkill auch, die schlechten alten Tage, die für den durchschnittlichen Benutzer.
- Wo würde ich schauen, um zu sehen, keine Notizen, wie das Paket im Homebrew vorbereitet wurde? Muss jemand haben, lief in ähnliche Arten von Fehlern, die bei der Vorbereitung der Pakete für Homebrew. Also, ist es ein Ort, um zu sehen, dass bis?
- Ich konnte es nicht reproduzieren diesen Fehler, welche php-version Sie verwenden.
- Finden Sie diese github.com/Homebrew/homebrew-php/issues/1710. Ich benutze brauen zu, und vielleicht ist "brew update && brew installieren php56 && brew reintsasll icu4c" funktionieren würde
- Die Mac-Book-Pro-laptop kam installiert mit php v5.5.31.
- Was ist Ihre icu4c version?
- Die icu4c version, die ich heruntergeladen wurde, 51.2, weil der PECL binary Abhängigkeit, aber jetzt lese ich es wieder, ich denke, ich sollte einen Blick auf die PHP-docs finden Sie heraus, welche version zu verwenden. Ich habe versucht, 51.2, 52.1, und die neuesten 57.1, die Schienen alle ergeben die gleiche Fehlermeldung.
- Lassen Sie uns weiterhin diese Diskussion im chat.
- Nicht intl enthalten mit PHP für eine lange Zeit jetzt? Haben Sie
DYLD_LIBRARY_PATH
vor der Ausführungpecl
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Behob ich dieses problem,hier ist meine Umgebung:
der entscheidende Punkt ist, neu installieren Intensivstation mit
--enable-rpath
:Wenn du wissen willst warum,bitte führen Sie als root
um zu überprüfen, ob die erste Bibliothek ist absolute Pfad.
Vielleicht können Sie versuchen, nur dieses:
Möglicherweise betrachten diese threads (https://github.com/Homebrew/homebrew-php/issues/1701) und (https://github.com/Homebrew/homebrew-php/issues/1710). Ich habe versucht, zu reproduzieren, Ihre Fehler, aber ich konnte nicht. Der wahrscheinlichste Grund wäre ein icu4c, die ist nicht verlinkt.
Versuchen Sie es mit
brew link --force icu4c
Versuchte ich mit php70 und
gescheitert. Ich habe versucht, mit php56, alles lief reibungslos.
Versuchen
php -v master
so etwas wie dieses sollten zeigen, bisld: file not found: ... for architecture x86_64
Versuchen ausgeführt: