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:

  1. Installiert BIRNE läuft auf Mac

  2. Kompiliert und installiert, die ICU-Bibliothek (version 51.2) in /usr/local/lib

  3. 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:

  1. 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.

  2. 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;}) mit cc -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ührung pecl?

Schreibe einen Kommentar