Użycie dowolnej aplikacji php skutkuje:
dyld: Library not loaded: /usr/local/lib/libpng15.15.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
[1] 4494 trace trap php
Większość moich aplikacji php została zainstalowana przy użyciu homebrew, z wyjątkiem kompozytora (instalowanego przy użyciu curl)
Próbowałem usunąć libpng i ponownie zainstalować za pomocą homebrew bezskutecznie.
Następnie należy przejść do najnowszej wersji libpng 1.5, jak podano w komunikacie o błędzie:
$ brew info libpng
libpng: stable 1.6.10 (bottled)
http://www.libpng.org/pub/png/libpng.html
/usr/local/Cellar/libpng/1.5.17 (15 files, 1.0M)
Poured from bottle
/usr/local/Cellar/libpng/1.5.18 (15 files, 1.0M)
Poured from bottle
/usr/local/Cellar/libpng/1.6.10 (17 files, 1.3M) *
$ brew switch libpng 1.5.18
Cleaning /usr/local/Cellar/libpng/1.5.17
Cleaning /usr/local/Cellar/libpng/1.5.18
Cleaning /usr/local/Cellar/libpng/1.6.10
16 links created for /usr/local/Cellar/libpng/1.5.18
Teraz błąd zmienił się na:
dyld: Library not loaded: /usr/local/lib/libpng16.16.dylib
Referenced from: /usr/local/lib/libfreetype.6.dylib
Reason: image not found
[1] 6993 trace trap phpunit
Używam Mavericks (10.9.2) i PHP 5.5.1.
Z góry dziękuję!
php
osx-mavericks
libpng
dyld
user3458861
źródło
źródło
Postępowałem zgodnie z powyższym (i tak nigdy nie jest to zły pomysł, aby być na bieżąco z naparami) i nadal miałem ten sam dokładny problem:
Potem wymyśliłem prostszy sposób:
Wyszukaj wersje libpng na swoim pudełku:
Utwórz łącze symboliczne:
Spróbuj ponownie:
1) Odpowiednik locate w systemie Mac OS X
źródło
mdfind libpng15.15.dylib
nie wymaga zlokalizowania hackaDzieje się tak, ponieważ nie ma dowiązań symbolicznych do libpng. Musisz ponownie połączyć libpng.
Możesz otrzymać błąd. Naprawiłem ten błąd, poprawiając uprawnienia. Może to z powodu odinstalowanych macportów.
Utwórz link ponownie i zadziała.
źródło
brew link unixodbc
. Ale mój system był właścicielem tego konkretnego pakietu.Rozwiązałem to, kopiując go do brakującego katalogu:
brew reinstalacja libpng kontynuował instalację libpng16, a nie libpng15, więc byłem zmuszony zrobić powyższe.
źródło
Warning: Unbrewed dylibs were found in /usr/local/lib. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted. Unexpected dylibs: /usr/local/lib/libpng15.15.dylib
W moim przypadku tak było
libjpeg
. Wszystko, co musiałem zrobić, to uruchomićbrew reinstall libjpeg
i wszystko po prostu działało!źródło
libpng
.brew reinstall libpng
rozwiązałem toNa wypadek, gdyby ktoś inny napotkał ten problem, rozwiązałem go w następujący sposób
Spowodowało to błąd z innymi pakietami wymagającymi 1.5, z którymi zostały zbudowane, więc połączyłem to:
Teraz oboje żyją w harmonii i ramię w ramię dla różnych pakietów. Lepiej byłoby odbudować pakiety zależne od 1.5, ale działa to jako szybka naprawa bandaży.
źródło
Wiem, że to pytanie ma już odpowiedź, która daje rozwiązanie. Ale chcę ci dać moje dwa centy, aby pomóc ludziom zrozumieć problem. Otrzymując ten sam problem, stworzyłem konkretne pytanie . Mam ten sam problem, ale tylko z PHPStorm. I dokładnie wtedy, gdy próbuję uruchomić test z edytora.
dyld jest dynamicznym konsolidatorem
Zasiałem, że dyld szukał /usr/local/lib/libpng15.15.dylib, ale w moim / usr / local / lib / nie było. W tym folderze znalazłem libpng16.16.dylib.
Dzięki komentarzowi rozumiem, że mój / usr / bin / php był wskaźnikiem do php 5.5.8. Zamiast tego ... / usr / local / bin / php było 5.5.14. PHPStorm współpracował z / usr / bin / php, który jest domyślną konfiguracją. Kiedy uruchamiam php przez konsolę, uruchamiam / urs / local / bin / php.
Więc ... Jeśli pojawi się jakiś błąd dyld, być może masz niewłaściwą konfigurację php. To jest powód, ponieważ
Ale nie wiem, dlaczego to nie rozwiązuje problemu. Może dlatego, że tak
źródło
Ja też miałem ten problem i żadne z rozwiązań w tym wątku mi nie pomogło. Jak się okazuje, problem polegał na tym, że miałem taką linię w
~/.bash_profile
:Okazuje się, że
/usr/local/php
był to tylko link symboliczny do/usr/local/Cellar/php54/5.4.24/
. Więc kiedyphp -i
wywołałem, nadal wywoływałem php54. Właśnie usunąłem tę linię z mojego profilu bash, a następnie php działał.Z jakiegoś powodu, mimo że php55 było teraz uruchomione,
php.ini
plik z php54 był nadal załadowany i otrzymywałem to ostrzeżenie za każdym razem, gdy wywoływałem php:Aby to naprawić, właśnie dodałem następujący wiersz do mojego profilu bash:
A potem wszystko działało normalnie!
źródło
Miałem ten błąd, który nie został rozwiązany przez
brew update && brew upgrade
. Z jakiegoś powodu musiałem zainstalować go od zera:$ brew install libpng
źródło
Miałem bardzo ciężko z tym błędem:
Wszystkie powyższe rzeczy zrobiłem z naparem i wiele więcej ... ale to nie było to!
Sprawdź, gdzie jest Twoja biblioteka:
W moim przypadku tutaj był odpowiedni wynik:
Ponieważ jestem użytkownikiem MAMP, okazało się, że błąd pojawił się podczas próby aktualizacji z PHP 7.1.0 do 7.1.8 ( ostatnie dostępne php MAMP), ponieważ Symfony4 wymaga co najmniej 7.1.3
Na koniec zainstalowałem nową wersję MAMP i zadziałało (4.1 do 4.2). Jednak zachowaj ostrożność, gdy to robisz, musisz najpierw wykonać kopię zapasową wszystkiego w folderze MAMP / htdoc. Zachowaj również kopię zapasową własnej skompilowanej wersji php, która może znajdować się w MAMP / bin / php. (W moim przypadku miałem specjalną wersję PHP ze sterownikami Oracle).
Również jeśli skonfigurowałeś wersję MAMP php jako interpreter CLI php, musisz zaktualizować PATH w swoim .bash_profile
Powinien wyglądać mniej więcej tak:
Mam nadzieję, że to pomoże.
źródło
Mam ten problem po aktualizacji MAMP, a niestandardowa ścieżka $ PATH, którą ustawiłem, była błędna z powodu nowej wersji php, więc najpierw została załadowana niewłaściwa wersja php i to ta wersja php wywołała błąd.
Aktualizacja ścieżki w moim .bash_profile rozwiązała mój problem.
źródło