2012-11-06 83 views
1

我想爲我的類運行一個簡單的OpenGL教程,但C++代碼是爲Windows和Linux運行的。我試圖讓它在Mac OS X Mountain Lion下運行。 我找到了正確的庫頭,現在編譯OK(與scons的),但在運行時生成給出了這樣的錯誤:dyld:找不到符號:_jpeg_resync_to_restart

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。

+1

可以顯示SCons腳本和完整的編譯輸出。 – Brady

+0

其實我找到了它,我只是想發佈答案。 – zbrox

回答

4

從谷歌的搜索情況來看,內置在Mac OS X中的libjpeg庫具有 __cg_jpeg_resync_to_restart而如果你使用的MacPorts,芬克,也許自己編譯你 - _jpeg_resync_to_restart。 在這種情況下,通過Homebrew獲得的DevIL庫搜索的不是來自Mac OS X庫的符號,所以我認爲我應該通過自制軟件安裝libjpeg。但事實證明,libjpeg已經通過自制軟件安裝。所以我猜想,libjpeg的鏈接可能存在問題,我斷開鏈接並再次鏈接,並且是在庫初始鏈接時出現問題。 但是這並沒有解決問題。我再次假設,現在如果我再次構建了DevIL庫,libjpeg在正確的位置具有符號鏈接,它將在正確的位置鏈接到正確的庫。所以我做了一個brew uninstall devil,然後brew install devil再次從源編譯。 Aaand voila :)

0

它只是將DYLD_LIBRARY_PATH更改爲正確的路徑。

相關問題