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 に答える