dyld:找不到符号:__ cg_jpeg_resync_to_restart

时间:2016-02-19 16:09:56

标签: dyld

我正在尝试运行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的。关于如何处理这个问题的任何提示,甚至是这个错误信息的真正含义?

4 个答案:

答案 0 :(得分:8)

如果使用Qt Creator,则必须取消选中Add build library search path to DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH标签中Run部分的Projects选项:

qtcreator

答案 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给出的(错误降级)答案是正确的。