Использование любого приложения на PHP приводит к:
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
Большинство моих приложений php были установлены с использованием homebrew, за исключением composer (установлен с помощью curl)
Я попытался удалить libpng и переустановить его с помощью homebrew, но безрезультатно.
Затем нужно было переключиться на последнюю версию libpng 1.5, как указано в сообщении об ошибке:
$ 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
Теперь ошибка изменилась на:
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
Я использую Mavericks (10.9.2) и PHP 5.5.1.
Заранее спасибо!
php
osx-mavericks
libpng
dyld
user3458861
источник
источник
Я следил за приведенным выше (в любом случае, никогда не было плохой идеей идти в ногу с пивом), и у меня все еще была та же проблема:
Потом придумал способ попроще:
Найдите свою версию (-и) libpng на своем компьютере:
Сделайте символическую ссылку:
Попробуй еще раз:
1) Mac OS X эквивалент locate
источник
mdfind libpng15.15.dylib
не требует взлома locateЭто потому, что для libpng нет символических ссылок. Вам нужно снова связать libpng.
И вы можете получить некоторую ошибку. Я исправил эту ошибку, исправив разрешение. Может это из-за неустановленных macports.
Создайте ссылку еще раз, и она будет работать.
источник
brew link unixodbc
. Но моя система владела этим конкретным пакетом.Я решил это, скопировав его в отсутствующий каталог:
brew переустановить libpng продолжал устанавливать libpng16, а не libpng15, поэтому я был вынужден сделать то же самое.
источник
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
В моем случае это было
libjpeg
. Все, что мне нужно было сделать, это запустить,brew reinstall libjpeg
и все заработало !источник
libpng
.brew reinstall libpng
решил этоНа всякий случай, если кто-то еще столкнется с этой проблемой, я решил ее следующим
Это вызвало ошибку с другими пакетами, требующими 1.5, с которой они были собраны, поэтому я связал его:
Теперь они оба живут в гармонии и бок о бок из-за разных пакетов. Было бы лучше пересобрать пакеты, зависящие от 1.5, но это работает как быстрое исправление ошибок.
источник
Я знаю, что на этот вопрос уже есть ответ, который дает решение. Но я хочу отдать вам свои два цента, чтобы помочь людям разобраться в проблеме. Возникла такая же проблема. Я создал конкретный вопрос. . У меня такая же проблема, но только с PHPStorm. И именно при попытке запустить тест из редактора.
dyld - это динамический компоновщик
Я сею, что dyld искал /usr/local/lib/libpng15.15.dylib, но внутри моего / usr / local / lib / его не было. В этой папке у меня есть libpng16.16.dylib.
Благодаря комментарию я понял, что мой / usr / bin / php был указателем на php 5.5.8. Вместо этого ... / usr / local / bin / php был 5.5.14. PHPStorm работал с / usr / bin / php, конфигурацией по умолчанию. Когда я запускаю php через консоль, я запускаю / urs / local / bin / php.
Итак, ... Если вы получите ошибку dyld, возможно, у вас неправильная конфигурация php. Это причина, потому что
Но я не знаю, почему это не решает для меня проблему. Может потому что у меня
источник
У меня тоже была эта проблема, и ни одно из решений в этой теме не помогло мне. Как оказалось, проблема заключалась в том, что у меня была эта строка
~/.bash_profile
:И, как оказалось, это
/usr/local/php
была просто символическая ссылка на/usr/local/Cellar/php54/5.4.24/
. Итак, когда я вызвалphp -i
я все еще использовал php54. Я просто удалил эту строку из своего профиля на bash, и тогда php заработал.По какой-то причине, несмотря на то, что теперь php55 был запущен,
php.ini
файл с php54 все еще был загружен, и я получал это предупреждение каждый раз, когда запускал php:Чтобы исправить это, я просто добавил в свой профиль bash следующую строку:
А дальше все заработало как обычно!
источник
У меня была эта ошибка, которую не удалось решить
brew update && brew upgrade
. По какой-то причине мне потребовалось установить его с нуля:$ brew install libpng
источник
Мне было очень тяжело с этой ошибкой:
Я проделал все вышеперечисленное с пивом и многим другим ... но все было не так!
Проверьте, где находится ваша библиотека:
В моем случае это был соответствующий результат:
Поскольку я являюсь пользователем MAMP, оказалось, что ошибка появилась, когда я пытался обновить PHP 7.1.0 до 7.1.8 ( последний доступный MAMP php ), поскольку Symfony4 требует как минимум 7.1.3
В конце я установил новую версию MAMP, и она заработала (с 4.1 по 4.2). Однако будьте осторожны, когда делаете это, вам нужно сначала сделать резервную копию всего в папке MAMP / htdoc. Также сохраните резервную копию вашей скомпилированной версии php, которая может находиться в MAMP / bin / php. (В моем случае у меня была специальная версия PHP с драйверами Oracle).
Также, если вы настроили версию MAMP php в качестве интерпретатора php CLI, вам необходимо обновить PATH в вашем .bash_profile
Это должно выглядеть примерно так:
Надеюсь, это поможет.
источник
У меня возникла эта проблема после обновления MAMP, и пользовательский $ PATH, который я установил, был неправильным из-за новой версии php, поэтому сначала была загружена неправильная версия php, и именно эта версия php вызвала ошибку.
Обновление пути в моем .bash_profile устранило мою проблему.
источник