dyld:未找到符号:_jpeg_resync_to_restart

时间:2012-11-06 14:14:32

标签: macos opengl osx-mountain-lion scons

我正在尝试为我的类运行一个简单的OpenGL教程,但C ++代码是为Windows和Linux运行的。我试图让它在Mac OS X Mountain Lion下运行。 我找到了正确的库头文件,它现在编译好了(使用scons),但是运行时构建会出现此错误:

dyld: Symbol not found: _jpeg_resync_to_restart
  Referenced from: /usr/local/lib/libIL.1.dylib
  Expected in: flat namespace
in /usr/local/lib/libIL.1.dylib
Trace/BPT trap: 5

在线搜索只给我带来了python成像库问题。我通过自制软件安装了libjpeg和DevIL。

2 个答案:

答案 0 :(得分:6)

从谷歌搜索来看,Mac OS X中内置的libjpeg库有 __cg_jpeg_resync_to_restart如果你使用MacPorts,Fink,或者自己编译,你得到--_jpeg_resync_to_restart。 在这种情况下,通过Homebrew获取的DevIL库正在搜索不是来自Mac OS X库的符号,所以我假设我应该通过自制软件安装libjpeg。然而事实证明libjpeg已经通过自制软件安装。所以我猜想libjpeg的链接可能存在问题,我再次链接和链接,是的,初始链接库存在问题。 然而,这并没有解决问题。我再次假设现在libjpeg在正确的位置有符号链接,如果我再次构建DevIL库,它将链接到适当位置的正确库。所以我做了一个brew uninstall devil然后brew install devil再次使用源代码编译。 Aaand voila:)

答案 1 :(得分:0)

我只是将DYLD_LIBRARY_PATH更改为正确的路径。