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
してあげたらいいと思う