Dyld: библиотека не загружена:/usr/local/lib/libpng16.16.dylib с чем-либо связанным с php

Использование любых приложений 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, за исключением композитора (установленного с помощью 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

Im работает с Mavericks (10.9.2) и PHP 5.5.1.

Спасибо заранее!

Ответ 1

Я предлагаю вам запустить:

$ brew update && brew upgrade

Еще пару минут назад у меня тоже была эта проблема. Поскольку у меня есть обновленная версия PHP, я решил ее с помощью:

$ brew reinstall php55

Надеюсь, что это поможет.

Ответ 2

Я следил за приведенным выше (никогда не бывалая идея, чтобы постоянно быть в курсе событий brew) и все еще имела одинаковую проблему:

LAPTOP:folder Username$ php -v
dyld: Library not loaded: /usr/local/lib/libpng15.15.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
Trace/BPT trap: 5

Затем выяснили более простой способ:

Найдите свою версию libpng в своем поле:

# Requires locate & updatedb for mac os x
# See Link [1] 
LAPTOP:folder Username$ locate libpng15.15.dylib
/Applications/GIMP.app/Contents/Resources/lib/libpng15.15.dylib
/usr/X11/lib/libpng15.15.dylib
/usr/local/Cellar/libpng/1.5.14/lib/libpng15.15.dylib

Сделать символическую ссылку:

LAPTOP:folder Username$ ln -s /usr/local/Cellar/libpng/1.5.14/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib

Повторите попытку:

LAPTOP:folder Username$ php -v
PHP 5.3.26 (cli) (built: Aug 25 2013 16:07:23) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

1) Mac OS X эквивалент местоположения

Ответ 3

Это потому, что нет символических ссылок для libpng. Вам нужно снова связать libpng.

brew unlink libpng && brew link libpng

И вы можете получить некоторую ошибку. Я исправил эту ошибку, исправив разрешение. Возможно, это из-за удаления macports.

sudo chown -R yourid:staff /usr/local/share/man/

Создайте ссылку еще раз, и она будет работать.

Ответ 4

Я решил это, скопировав его в пропавший каталог:

cp /opt/X11/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib

brew переустановить libpng, продолжал устанавливать libpng16, а не libpng15, поэтому я был вынужден сделать это.

Ответ 5

В моем случае это было libjpeg. Все, что мне нужно было сделать, было запустить brew reinstall libjpeg, и все просто сработало!

Ответ 6

На всякий случай, когда кто-то сталкивается с этой проблемой, я решил ее следующим образом:

brew update && brew upgrade # installs libpng 1.6

Это вызвало ошибку с другими пакетами, требующими 1.5, с которыми они были построены, поэтому я связал их:

cd /usr/local/lib/
ln -s ../Cellar/libpng/1.5.18/lib/libpng15.15.dylib

Теперь они оба живут в гармонии и бок о бок для разных пакетов. Было бы лучше перестроить пакеты, которые зависят от 1.5, но это работает как быстрое исправление повязки.

Ответ 7

Я знаю, что этот вопрос уже имеет ответ, который дает решение. Но я хочу дать вам два цента, чтобы помочь людям понять проблему. Получение той же проблемы, которую я создал конкретный вопрос. У меня такая же проблема, но только с PHPStorm. И точно, когда я пытаюсь запустить тест из редактора.

dyld является динамическим компоновщиком

Я сею, что dyld искал /usr/local/lib/libpng 15.15.dylib, но внутри my/usr/local/lib/этого не было. В этой папке я получил libpng16.16.dylib.

Благодаря комментарию я обнаружил, что my/usr/bin/php является указателем на php 5.5.8. Вместо этого... /usr/local/bin/php было 5.5.14. PHPStorm работал с /usr/bin/php, который является конфигурацией по умолчанию. Когда я запускаю php через консоль, я запускаю /urs/local/bin/php.

Итак,... Если вы получите некоторую ошибку, возможно, у вас есть некорректная конфигурация php. Это причина, по которой

$ brew update && brew upgrade
$ brew reinstall php55

Но я не знаю, почему это не решает проблему для меня. Может быть, потому что у меня

Ответ 8

У меня также была эта проблема, и ни одно из решений в этой теме не работало для меня. Как оказалось, проблема заключалась в том, что у меня была эта строка в ~/.bash_profile:

alias php="/usr/local/php/bin/php"

И, как оказалось, /usr/local/php был просто символической ссылкой на /usr/local/Cellar/php54/5.4.24/. Поэтому, когда я вызывал php -i, я все еще вызывал php54. Я просто удалил эту строку из моего профиля bash, а затем работал php.

По какой-то причине, хотя php55 теперь запущен, файл php.ini из php54 все еще был загружен, и я получил это предупреждение каждый раз, когда я вызывал php:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php54/5.4.38/lib/php/extensions/no-debug-non-zts-20100525/memcached.so' - dlopen(/usr/local/Cellar/php54/5.4.38/lib/php/extensions/no-debug-non-zts-20100525/memcached.so, 9): image not found in Unknown on line 0

Чтобы исправить это, я просто добавил следующую строку в мой профиль bash:

export PHPRC=/usr/local/etc/php/5.5/php.ini

И тогда все сработало нормально!

Ответ 9

У меня была ошибка, которая не была решена с помощью brew update && brew upgrade. По какой-то причине мне нужно было установить его с нуля:

$ brew install libpng

Ответ 10

У меня возникла эта проблема после обновления MAMP, и пользовательский набор $PATH, который я установил, был неправильным из-за новой версии php, поэтому сначала была загружена неправильная версия php, и именно эта версия php вызвала ошибку.

Обновление пути в моем .bash_profile исправило мою проблему.