dyld:找不到符号:__ cg_jpeg_resync_to_restart

Lea*_*hNH 8 dyld

我正在尝试运行java版本的PowerLoom,但是当我尝试在终端中启动它时,我收到以下错误消息:

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
Run Code Online (Sandbox Code Playgroud)

对于这个问题,这似乎是一个非常类似的问题,除了答案是针对MAMP/Cacti的.有关如何处理此问题的任何提示,甚至此错误信息的真正含义是什么?

Iul*_*rei 15

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

qtcreator


Pie*_*erz 8

这个问题可能归结为有问题的应用程序动态链接到 [libJPEG.dylib] 库的错误版本(也可能正确的版本已被覆盖/修改)。正如在另一个问题中所解释的那样,当应用程序更改控制动态链接库位置的环境变量时,可能会出现问题(例如,在 MacOS 上:DYLD_LIBRARY_PATH-更多信息见man dyld;在 Linux 上:LD_LIBRARY_PATH-见man ld.so)。这可能取决于其他因素,例如动态链接库配置文件,但它们具有系统范围的影响。您需要在应用程序文件中找到变量 setup 并更改它,以便它优先考虑系统路径,例如(对于 MacOS):

export DYLD_LIBRARY_PATH=/usr/lib/:ADDITION_LIBRARY_PATH_LOCATION
Run Code Online (Sandbox Code Playgroud)

  • 这似乎没有解决问题。 (2认同)

小智 6

你可以在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
Run Code Online (Sandbox Code Playgroud)


小智 5

您可能安装了 HomeBrew(或类似的东西)。有些东西首先将 DYLD_LIBRARY_PATH 设置为 /usr/local/lib 并且您会与安装的 Jpeg 发生冲突,/usr/local/lib/libJPEG.dylib而不是使用系统版本。

上面@Pierz 给出的(错误降级)答案是正确的。


归档时间:

查看次数:

4483 次

最近记录:

5 年,11 月 前