I get well known dyld
issue on OS X.
Qt.pro file:
INCLUDEPATH += /usr/local/Cellar/libpng/1.6.23/include /usr/local/Cellar/jpeg/8d/include
LIBS += -L/usr/local/Cellar/libpng/1.6.23/lib -L/usr/local/Cellar/jpeg/8d/lib -ljpeg -lpng -ljpeg -lz
In runtime my application throws:
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/Cellar/jpeg/8d/lib/libjpeg.8.dylib in
/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
I already got this before and I fixed it using this answer, but now it occurs again and this advice not works. How can I solve this problem?
This is only a QtCreator runtime issue. DanyAlejandro's answer (above) is partially correct.
- Go to Projects -> Run -> "Run Environment" (show Details)
- I would not recommend Unset, rather you should edit
Both: DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH
- Add /System/Library/Frameworks/ImageIO.framework/Resources: to the beginning for both paths (colon delimited string)
- Build project again - this will fix it for good
In my case, this error would only happen in Qt Creator on OSX ElCapitan (Compiling my OpenCV programs with CLion or XCode in OSX would work without doing anything), so I don't think it's correct to say that a change in the system configuration is mandatory (like your link suggests).
What I did, was to link each library file one by one (linking the dylib files one by one, with their full path). This way, I didn't have to mess with my files or do any extra configuration. For example:
LIBS += "/usr/local/lib/libopencv_core.dylib"
LIBS += "/usr/local/lib/libopencv_highgui.dylib"
Provided such files exist.
Edit: Another way to fix this problem (which further proves that this is only Qt Creator related) is to go to Projects -> Run -> "Run Environment" (show Details), select DYLD_LIBRARY_PATH and click Unset. After this, your project should compile as expected.