としたにあんの左脳

備忘録です.

dyld: Symbol not found: __cg_jpeg_resync_to_restart

ある日,Macで

$vagrant up

しようとしたら,こんなエラーがでた.

dyld: Symbol not found: __cg_jpeg_resync_to_restart
  Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
  Expected in: /usr/local/lib/libJPEG.dylib
 in /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib

その他色々触ってたら,

$ open -a hogehoge

しても同じエラーがでた.

原因

libJPEG.dylib__cg_jpeg_resync_to_restartっていう関数を使用したいけど無いらしい.

原因は,homebrewでlibJPEGをインストールしちゃってたことみたい.

homebrewでインストールされるlibJPEG__cg_jpeg_resync_to_restartを持たない.

本来は/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylibを使わなきゃいけないっぽい.

homebrewで入った/usr/local/lib/libJPEG.dylibを先に見つけてしまって,その結果,関数がなくてエラーみたいな感じ.

対策

$brew uninstall jpeg

これでうまくいかなかったら

 ln -s /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib /usr/local/lib/libJPEG.dylib

してあげたらいいと思う