programing

dyld: 라이브러리가 로드되지 않음: /usr/local/lib/libpng16.16.dylib (ph 관련 항목 포함)

bestcode 2022. 11. 8. 21:50
반응형

dyld: 라이브러리가 로드되지 않음: /usr/local/lib/libpng16.16.dylib (ph 관련 항목 포함)

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

저는 Mavericks(10.9.2)와 PHP 5.5.1을 실행하고 있습니다.

잘 부탁드립니다!

달리기를 권장합니다.

$ brew update && brew upgrade

저도 몇 분 전까지만 해도 이런 문제가 있었어요.저는 최신 버전의 PHP를 가지고 있기 때문에 다음과 같이 해결했습니다.

$ brew reinstall php55

도움이 됐으면 좋겠다.

위 사항을 따랐지만(어쨌든 양조업 정보를 최신 상태로 유지하는 것은 나쁘지 않은 생각이었다) 여전히 정확히 같은 문제가 있었습니다.

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에 대한 symlink가 없기 때문입니다.libpng를 다시 연결해야 합니다.

brew unlink libpng && brew link libpng

그리고 당신은 실수를 할 수 있습니다.저는 그 오류를 수정하여 수정했습니다.아마도 맥포트가 제거되었기 때문일 것이다.

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이 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에 의존하는 패키지를 재구축하는 것이 좋지만, 이것은 빠른 붕대 수정으로 작용합니다.

나는 이 질문이 이미 해결책을 주는 답을 가지고 있다는 것을 안다.하지만 사람들이 문제를 이해하는 데 도움이 되도록 제 의견을 드리고 싶습니다.같은 문제를 해결하기 위해 나는 특정한 질문을 만들었다.같은 문제가 발생했지만 PHPSTorm에서만 발생했어요.그리고 정확히 에디터의 테스트를 실행하려고 할 때.

dyld는 동적 링커입니다.

dyld가 /usr/local/lib/lib/libpng15.15.dylib을 찾고 있었는데, 제 /usr/local/lib/ 안에는 없었습니다.그 폴더에는 libpng.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

하지만 나는 왜 이것이 나에게 문제를 해결해주지 않는지 모르겠다.그래서 그런지

저도 이런 문제가 있었는데 이 스레드의 어떤 해결책도 제게는 효과가 없었습니다.알고 보니, 문제는 이 대사를 넣었다는 것이었다.~/.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.iniphp54의 파일은 아직 로드되어 있으며, 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/B를 제공합니다.PT 트랩: 6

나는 위의 모든 것을 양주와 더 많은 것들로 했다... 하지만 이것은 아니었다!

라이브러리의 위치를 확인합니다.

sudo 검색 / -name libpng 16.16.dylib

제 경우, 다음과 같은 결과가 나왔습니다.

  • /usr/local/lib/lib/libpng16.16.dylib
  • /usr/local/Cellar/libpng/1.6.34/lib/libpng16.16.dylib
  • /어플리케이션/MAMP/라이브러리/lib/libpng16.16.dylib
  • /opt/X11/lib/libpng16.16.dylib

그래서 제가 MAMP 사용자이기 때문에 Symfony4에는 적어도 7.1.3이 필요하기 때문에 PHP 7.1.0에서 7.1.8(마지막 MAMP ph 사용 가능)로 업데이트하려고 할 때 오류가 발생하였습니다.

마지막으로 새로운 버전의 MAMP를 설치했는데 작동했습니다(4.1에서 4.2).그러나 이 작업을 수행할 때는 먼저 MAMP/htdoc 폴더에 있는 모든 데이터를 백업해야 합니다.또한 MAMP/bin/php에서 사용할 수 있는 커스텀 컴파일된 php 버전의 백업도 보관합니다(내 경우 Oracle 드라이버와 함께 특별한 PHP 버전이 있었습니다).

또한 CLI php 인터프리터로 MAMP ph 버전을 구성한 경우 .bash_profile에서 PATH를 업데이트해야 합니다.

다음과 같이 표시됩니다.

PATH=/어플리케이션/MAMP/bin/php/php 7.1.8/bin 내보내기:$경로.

이게 도움이 됐으면 좋겠어요.

MAMP 업데이트 후 이 문제가 발생하였고, 새로운 php 버전 때문에 설정한 커스텀 $PATH가 잘못되었기 때문에 잘못된 버전의 php가 먼저 로드되었고, 그 버전의 php가 오류를 유발했습니다.

.bash_profile 경로를 업데이트하면 문제가 수정되었습니다.

언급URL : https://stackoverflow.com/questions/22631026/dyld-library-not-loaded-usr-local-lib-libpng16-16-dylib-with-anything-php-rel

반응형