сотового оператора: библиотека не загружается: /usr/местные/библиотека/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, за исключением 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


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



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

571   11  

11 ответов:

Я предлагаю вам выполнить:

$ brew update && brew upgrade

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

$ brew reinstall php55

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

я следовал выше (никогда не плохая идея, чтобы идти в ногу с 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 эквивалент locate

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

brew unlink libpng && brew link libpng

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

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

создать ссылку Еще раз, и это будет работать.

Я решил эту проблему, скопировав его в отсутствующий каталог:

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

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

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

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

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, но это работает как быстрое исправление повязки.

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

dyld - это динамический компоновщик

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

благодаря комментарию, я undestand, что мой /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. Вот почему, потому что

$ brew update && brew upgrade
$ brew reinstall php55

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

у меня также была эта проблема, и ни одно из решений в этой теме не работало для меня. Как оказалось, проблема была в том, что у меня была эта строка в ~/.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

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

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

$ brew install libpng

Мне было очень трудно с этой ошибкой:

причина: несовместимая версия библиотеки: php требуется версия 44.0.0 или более поздняя, но libpng16.16.dylib обеспечивает версия 42.0.0 Trace / BPT trap: 6

Я сделал все вышеперечисленные вещи с brew и многое другое ... но дело было не в этом !

проверьте, где находится ваша библиотека:

sudo find / - name libpng16.16.dylib нужна

в моем случае здесь было соответствующим результат :

  • / usr / local/lib / libpng16.16.dylib нужна
  • / usr / local/Cellar/libpng/1.6.34/lib / libpng16.16.dylib нужна
  • / Applications/MAMP/Library/lib / libpng16.16.dylib нужна
  • /opt/X11/lib / libpng16.16.dylib нужна

Так как я пользователь MAMP, оказалось, что ошибка появилась, когда я пытался обновить PHP 7.1.0 до 7.1.8 (последний MAMP php доступен) как Symfony4 требуют, по крайней мере 7.1.3

At в конце я установил новую версию MAMP, и она работала (4.1-4.2). Однако будьте внимательны, когда вы делаете это, вам нужно сначала создать резервную копию всего в папке MAMP/htdoc. Также сохраните резервную копию своей пользовательской скомпилированной версии php, чем может жить в MAMP/bin / php. (В моем случае у меня была специальная версия PHP с драйверами Oracle).

кроме того, если вы настроили версию php MAMP в качестве интерпретатора php CLI, вам нужно будет обновить путь в вашем.файл

Он должен выглядит примерно так:

путь экспорта= / Applications / MAMP/bin/php/php7.1.8 / bin:$PATH

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

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

обновление пути в моем .файл фиксированная моя проблема.

Comments

    Ничего не найдено.