[Error] after updating MacOS 15.4 and caused 'Library not loaded: @executable_path/../Frameworks/libopenblasp-r0.3.29.dylib'.

2025. 4. 14. 09:50카테고리 없음

opencv를 사용하는 프로젝트가 macos를 15.4로 업데이트 한 이후에 위와 같은 오류를 발생하기 시작했습니다.

 

번들링 후 dylibbundler를 실행했는데도 .app/Contents/Frameworks 폴더에 libopenblasp-r0.3.29.dylib 파일이

포함되지 않는 것을 확인하였습니다.

조치 사항으로

 

1. 'libopenblasp-r0.3.29.dylib'와 libopenblas.0.dylib' 를 찾아서 /Framework에 복사하였습니다.
    ${APP_FOLDER}는 실제 .app 폴더의 경로입니다.

cp -v /opt/homebrew/opt/openblas/lib/libopenblasp-r0.3.29.dylib ${APP_FOLDER}/Contents/Frameworks/
cp -v /opt/homebrew/opt/openblas/lib/libopenblas.0.dylib ${APP_FOLDER}/Contents/Frameworks/

 

 

2. install_name_tool을 사용하여  'libopenblasp-r0.3.29.dylib'가 참조하는 경로를 수정하였습니다.

install_name_tool -change \
  /opt/homebrew/opt/openblas/lib/libopenblas.0.dylib \
  @executable_path/../Frameworks/libopenblas.0.dylib \
  ${APP_FOLDER}/Contents/Frameworks/libopenblasp-r0.3.29.dylib

install_name_tool -change \
  /opt/homebrew/opt/gcc/lib/gcc/current/libgfortran.5.dylib \
  @executable_path/../Frameworks/libgfortran.5.dylib \
  ${APP_FOLDER}/Contents/Frameworks/libopenblasp-r0.3.29.dylib

install_name_tool -change \
  /opt/homebrew/opt/gcc/lib/gcc/current/libgomp.1.dylib \
  @executable_path/../Frameworks/libgomp.1.dylib \
  ${APP_FOLDER}/Contents/Frameworks/libopenblasp-r0.3.29.dylib

install_name_tool -change \
  /opt/homebrew/opt/gcc/lib/gcc/current/libquadmath.0.dylib \
  @executable_path/../Frameworks/libquadmath.0.dylib \
  ${APP_FOLDER}/Contents/Frameworks/libopenblasp-r0.3.29.dylib

 

2.1. 변경 전 참조 경로는 다음과 같습니다.

otool -L ./libopenblasp-r0.3.29.dylib 
./libopenblasp-r0.3.29.dylib:
	/opt/homebrew/opt/openblas/lib/libopenblas.0.dylib (compatibility version 0.0.0, current version 0.0.0)
	/opt/homebrew/opt/gcc/lib/gcc/current/libgfortran.5.dylib (compatibility version 6.0.0, current version 6.0.0)
	/opt/homebrew/opt/gcc/lib/gcc/current/libgomp.1.dylib (compatibility version 2.0.0, current version 2.0.0)
	/opt/homebrew/opt/gcc/lib/gcc/current/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)

 

2.2. 변경 후 참조 경로는 다음과 같습니다.

otool -L ./libopenblasp-r0.3.29.dylib
./libopenblasp-r0.3.29.dylib:
	@executable_path/../Frameworks/libopenblasp-r0.3.29.dylib (compatibility version 0.0.0, current version 0.0.0)
	@executable_path/../Frameworks/libgfortran.5.dylib (compatibility version 6.0.0, current version 6.0.0)
	@executable_path/../Frameworks/libgomp.1.dylib (compatibility version 2.0.0, current version 2.0.0)
	@executable_path/../Frameworks/libquadmath.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1351.0.0)

 

3. install_name_tool 이후 전체 dylib와 실행파일, .app에 대한 코드 사인을 실행했습니다.

 

 

사업자 정보 표시
주식회사 셀엑손 (CELLAXON Inc. | 이상효 | 경기도 화성시 동탄감배산로 143, 202동 2409호 | 사업자 등록번호 : 304-81-34245 | TEL : 031-8043-3215 | Mail : ryan@cellaxon.com | 통신판매신고번호 : 2022-화성동탄-0844호 | 사이버몰의 이용약관 바로가기