2

我正在尝试为我的班级运行一个简单的 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。

4

2 回答 2

7

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

于 2012-11-06T22:03:44.457 回答
0

它对我有用,只需将 DYLD_LIBRARY_PATH 更改为正确的路径。

于 2014-09-03T15:16:09.983 回答