我正在尝试为我的类运行一个简单的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。
答案 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更改为正确的路径。