相关疑难解决方法(0)

OSX中动态链接优先级之间的冲突?

OSX上的不同libjpeg动态库之间存在动态链接冲突.首先是标准的原生libJPEG.dylib(在/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/中).但是,如果您使用的是MacPorts,则还可以在/ opt/local/lib中使用与端口相关的libjpeg.dylib.例如,后者可以作为某些其他端口的依赖项安装.

当您链接到系统libJPEG(这是首选)时,这会产生问题.然后,如果/opt/local/lib在DYLD_LIBRARY_PATH中,则在搜索动态库时将优先考虑该路径,从而在加载符号时导致运行时错误:

dyld: Symbol not found: __cg_jpeg_resync_to_restart
 Referenced from:
/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
 Expected in: /opt/local/lib/libJPEG.dylib
in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Trace/BPT trap: 5
Run Code Online (Sandbox Code Playgroud)

所以我有两个问题(可能相关):

  1. 什么是解决实际问题的好方法(/opt/local/lib从DYLD_LIBRARY_PATH显然解决它但从而为其他依赖创建问题)?

  2. 搜索动态库的其他路径(即指定的"/ System/Library"路径在哪里)以及为什么DYLD_LIBRARY_PATH的优先级更高?

c++ macos macports dylib

14
推荐指数
4
解决办法
2万
查看次数

dyld:找不到符号:__ cg_jpeg_resync_to_restart

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

dyld

8
推荐指数
4
解决办法
4483
查看次数

标签 统计

c++ ×1

dyld ×1

dylib ×1

macos ×1

macports ×1