I'm trying to run a java version of PowerLoom, but when I try to start it in the terminal, I get the following error message:
dyld: Symbol not found: __cg_jpeg_resync_to_restart
Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Expected in: /usr/local/lib/libJPEG.dylib
in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Trace/BPT trap: 5
This seems like a very similar problem to this question, except that the answers are specific to MAMP/Cacti. Any tips on how to deal with this, or even what this error message really means?
If using
Qt Creator
, you have to uncheck theAdd build library search path to DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH
option from theRun
section in theProjects
tab:You likely have HomeBrew installed (or something like it). Something is setting DYLD_LIBRARY_PATH to /usr/local/lib first and you get a collision with Jpeg installed in
/usr/local/lib/libJPEG.dylib
instead of using the system version.The (wrongly demoted) answer given by @Pierz above is correct.
You could try this in shell:
This issue may be down to the application in question dynamically linking to the wrong version of the [libJPEG.dylib] library (it's also possible the correct version has been overwritten/modified). As explained in another question it is a problem that can occur when an application alters environment variables that control dynamic linking library location (e.g. On MacOS:
DYLD_LIBRARY_PATH
- more info seeman dyld
; On Linux:LD_LIBRARY_PATH
- seeman ld.so
). It may be down to other factors such as dynamic link library config files but they have a system wide affect. You'll need to locate the variable setup in the application files and change it so that it prioritises the system paths e.g. (for MacOS):