我正在尝试运行PowerLoom的java版本,但是当我尝试在终端中启动它时,我收到以下错误消息:
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 question非常相似,只是答案是针对MAMP / Cacti的。关于如何处理这个问题的任何提示,甚至是这个错误信息的真正含义?
答案 0 :(得分:8)
如果使用Qt Creator
,则必须取消选中Add build library search path to DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH
标签中Run
部分的Projects
选项:
答案 1 :(得分:5)
你可以在shell中试试这个:
$ cd /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources
$ sudo ln -sf libJPEG.dylib /usr/local/lib/libJPEG.dylib
$ sudo ln -sf libPng.dylib /usr/local/lib/libPng.dylib
$ sudo ln -sf libTIFF.dylib /usr/local/lib/libTIFF.dylib
$ sudo ln -sf libGIF.dylib /usr/local/lib/libGIF.dylib
答案 2 :(得分:0)
这个问题可能归结为有问题的应用程序动态链接到[libJPEG.dylib]库的错误版本(也可能是正确的版本被覆盖/修改)。正如在另一个question中所解释的那样,当应用程序改变控制动态链接库位置的环境变量时,可能会出现问题(例如:DYLD_LIBRARY_PATH [MacOS - 更多信息请参阅man dyld
],LD_LIBRARY_PATH [在Linux上 - 请参阅man ld.so
])。它可能取决于其他因素,例如动态链接库配置文件,但它们具有系统范围的影响。您需要在应用程序文件中找到变量设置并进行更改,以便优先考虑系统路径,例如: (对于MacOS):
export DYLD_LIBRARY_PATH=/usr/lib/:ADDITION_LIBRARY_PATH_LOCATION
答案 3 :(得分:0)
您可能安装了HomeBrew(或类似的东西)。有些东西首先将DYLD_LIBRARY_PATH设置为/ usr / local / lib,并且与/usr/local/lib/libJPEG.dylib
中安装的Jpeg发生冲突,而不是使用系统版本。
@Pierz给出的(错误降级)答案是正确的。