dyld:ライブラリが読み込まれていません:/usr/local/lib/libpng16.16.dylibとphpに関連するもの


119

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アプリケーションのほとんどは、composer(curlを使用してインストール)を除いて、homebrewを使用してインストールされました。

libpngを削除して、自作で再インストールしてみましたが、役に立ちませんでした。

次に、エラーメッセージに記載されているように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を実行しています。

前もって感謝します!

回答:


156

実行することをお勧めします:

$ brew update && brew upgrade

数分前まで私にもこの問題がありました。私は最新のPHPバージョンを持っているので、私はそれを次のように解決しました:

$ brew reinstall php55

お役に立てば幸いです。


ありがとう、自作を完全にアンインストールして再インストールしましたが、振り返ってみると、これがより良い選択肢だったと思います。
user3458861 2014年

別のプログラム(猶予)でも同じ問題が発生し、これで修正されました。
mstringer 2014

1
多分役立つ:ImageMagickが原因である可能性があります。ImageMagickで/ usr / local / bin / compareを消去することで同様の問題が発生しました。
phpguru 2014年

$ brewのアップグレードを行う必要はありませんでしたが、$ brewの更新と$ brewの再インストールphp53がうまくいきました。
トーマスベネット2014年

警告:アップグレードするとすべての(古い)数式が更新され、しばらく時間がかかる場合があります!
laffuste 2015年

42

私は上記に従って(とにかく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でロケートに相当するもの


8
ところで、mdfind libpng15.15.dylibハック見つける必要がありません
ユレC.

@JureCに感謝します。mdfindについては知りませんでした。sudo find / -name libpng15 -printを使用することもできますが、出力は少し冗長になります。
phpguru 2014年

これは私のために働いた唯一のことです、ありがとう:D
holmeswatson

これも私にとってはうまくいきました。私が抱えていた問題は、libpng15が古いバージョンであるため、更新が修正されないことです。
bigtunacan 14年

1
これが私のために働いた唯一の解決策です!ありがとう!
JLuiz 2014年

18

これは、libpngのシンボリックリンクがないためです。libpngを再度リンクする必要があります。

brew unlink libpng && brew link libpng

そして、いくつかのエラーが発生する場合があります。権限を修正してエラーを修正しました。アンインストールされたmacportsが原因である可能性があります。

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

もう一度リンクを作成すると機能します。


El Capitanでは、homebrew-phpを使用しており、これが私にとっての解決策となりました。上記のリンクに加えて、も実行する必要がありましたbrew link unixodbc。しかし、私のシステムはその特定のパッケージの所有権を持っていました。
justinpage 2015

11

私はそれを不足しているディレクトリにコピーすることでこれを解決しました:

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

brew reload libpngはlibpng15ではなくlibpng16をインストールし続けたので、上記のことを強制されました。


これにより、Brew Doctorを実行するときに追加の問題が発生します。 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
johnatasjmo 2016年

8

私の場合はそうだったlibjpeg。私がしなければならなかったことはbrew reinstall libjpegすべて実行され、すべてがうまくいった!


2
私の場合はそうだったlibpngbrew reinstall libpng解決しました
user34812

4

誰かがこの問題に遭遇した場合に備えて、私は次のように解決しました

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に依存するパッケージを再構築することをお勧めしますが、これは迅速な包帯の修正として機能します。


3

この質問にはすでに解決策を与える答えがあることを知っています。しかし、私はあなたに私の2セントを与えて、人々が問題を理解するのを助けたいと思います。同じ問題が発生する特定の質問を作成しまし。同じ問題が発生しましたが、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設定が間違っている可能性があります。それが理由です

$ brew update && brew upgrade
$ brew reinstall php55

しかし、なぜこれで問題が解決しないのか、私にはわかりません。たぶん私が持っているから


1

私もこの問題を抱えていて、このスレッドの解決策はどれもうまくいきませんでした。結局のところ、問題は私がこの行を持っていることでした~/.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が実行されていても、php54 php.iniからのファイルはまだロードされており、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

そして、すべてが正常に機能しました!


1

このエラーはで解決できませんでしたbrew update && brew upgrade。何らかの理由で、最初からインストールする必要がありました。

$ brew install libpng


1

私はこのエラーで非常に苦労しました:

理由:互換性のないライブラリバージョン:phpにはバージョン44.0.0以降が必要ですが、libpng16.16.dylibはバージョン42.0.0を提供しますトレース/ BPTトラップ:6

私は上記のすべてを醸造などで行いましたが、これではありませんでした!

ライブラリの場所を確認します。

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ユーザーなので、Symfony4には少なくとも7.1.3が必要なので、PHP 7.1.0から7.1.8 (最後のMAMP phpが利用可能)に更新しようとしたときにエラーが発生したことがわかりました

最後に、MAMPの新しいバージョンをインストールしましたが、動作しました(4.1から4.2)。ただし、これを行う場合は注意が必要です。まず、MAMP / htdocフォルダー内のすべてをバックアップする必要があります。また、MAMP / bin / phpに保存できるカスタムコンパイル済みphpバージョンのバックアップを保存してください。(私の場合、Oracleドライバーを備えた特別なPHPバージョンがありました)。

また、MAMP phpバージョンをCLI phpインタープリターとして構成した場合は、.bash_profileのPATHを更新する必要があります。

次のようになります。

export PATH = / Applications / MAMP / bin / php / php7.1.8 / bin:$ PATH

これがお役に立てば幸いです。


0

MAMPの更新後にこの問題が発生し、新しいphpバージョンが原因で、設定したカスタム$ PATHが間違っていたため、間違ったバージョンのphpが最初にロードされ、エラーを引き起こしたのはそのバージョンのphpでした。

.bash_profileのパスを更新すると、問題が解決しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.