web-dev-qa-db-ja.com

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

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。

前もって感謝します!

117
user3458861

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

$ brew update && brew upgrade

数分前まで、私もこの問題を抱えていました。最新のPHPバージョンがあるため、次のように解決しました。

$ brew reinstall php55

お役に立てば幸いです。

151
Pera Jovic

私は上記に従いました(とにかく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に相当

42
phpguru

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

brew unlink libpng && brew link libpng

また、エラーが発生する場合があります。許可を修正して、このエラーを修正しました。たぶん、それはmacportsのアンインストールが原因です。

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

再度リンクを作成すると、機能します。

18
Jonghee Park

見つからないディレクトリにコピーすることでこれを解決しました:

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

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

11
user391339

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

8
saada

他の誰かがこの問題に遭遇した場合に備えて、次の方法で解決しました

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

4
Alex

この質問には、解決策を提供する答えが既にあることがわかっています。しかし、人々に問題を理解してもらうために2セントを差し上げたいと思います。私が作成した同じ問題を取得 特定の質問 。同じ問題が発生しましたが、PHPStormのみです。そして、まさに私がエディターからテストを実行しようとしたとき。

dyld は動的リンカーです

私はdyldが/usr/local/lib/libpng15.15.dylibを探していたが、/ usr/local/lib /の中にはないことをsoいた。そのフォルダーに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

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

3
sensorario

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

理由:互換性のないライブラリバージョン:phpはバージョン44.0.0以降を必要としますが、libpng16.16.dylibはバージョン42.0.0のTrace/BPTトラップを提供します: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が必要です

最後に、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

これが役立つことを願っています。

1
Kaizoku Gambare

私もこの問題を抱えていましたが、このスレッドの解決策はどれも役に立ちませんでした。結局のところ、問題は、~/.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
Matt Korostoff

brew update && brew upgradeでは解決されなかったこのエラーがありました。何らかの理由で私はゼロからインストールする必要がありました:

$ brew install libpng

1
osowskit

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

.bash_profileのパスを更新すると、問題が修正されました。

0
axxxman