[php] 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를 제외하고 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을 실행 중입니다.

미리 감사드립니다!



답변

다음을 실행하는 것이 좋습니다.

$ 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에 해당하는 위치 찾기


답변

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 다시 설치 libpng는 libpng15가 아닌 libpng16을 계속 설치했기 때문에 위의 작업을 수행해야했습니다.


답변

제 경우에는 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에 의존하는 패키지를 다시 빌드하는 것이 좋지만 이것은 빠른 붕대 수정으로 작동합니다.


답변

이 질문에는 이미 해결책을 제시하는 답변이 있습니다. 하지만 사람들이 문제를 이해할 수 있도록 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

그러나 이것이 왜 나에게 문제를 해결하지 못하는지 모르겠습니다. 어쩌면 내가 가지고 있기 때문에