我在Linux下使用SDL2及其擴展庫。下面是我建SDL_image LIB步驟:SDL_image.h不會加載jpg/png文件?
- 下載libjpeg的來源,那麼標準的「配置;作出;使安裝」
- 下載SDL_image源,標準的「配置;作出;使安裝」
我對libpng做了同樣的事情所以我會省略這裏的步驟。
當我試圖加載JPG文件,PNG文件,分別爲,我得到了以下錯誤消息:(不理會自己添加前綴後一部分從SDL_GetError來)
SDL_CTexture::load error: JPEG loading error
SDL_CRenderer:copy error: Invalid texture
對PNG :
SDL_CTexture::load error: Failed loading png_set_longjmp_fn: /lib/i386-linux-gnu/libpng12.so.0: undefined symbol: _png_set_longjmp_fn
SDL_CRenderer:copy error: Invalid texture
順便說一句,當我嘗試構建libpng時,'make check'給出了一長串失敗。但是我事先安裝了liblng的zlib。
任何想法?
PS。從構建SDL_image時運行'./configure'的輸出,它對libpng和libjpeg都表示'yes'。
PPS。好了,現在我發現SDL_image已經鏈接到/lib/i386-linux-gnu/libpng12.so,但是我新建的libpng安裝在/ usr/local/lib中。我怎樣才能讓SDL_image鏈接到新版本?我嘗試將新的庫(libpng16.so)複製到/ lib/i386-linux-gnu,但它仍然指的是舊的libpnf12.so。
PPPS。最後,我通過將libpng16.so重命名爲libpng12.so.0並將該文件複製到/ lib/i386 ...(其中SDL_image所指的地方)來實現。然而,這個解決方案沒有正派。我仍然在尋找一種方法來告訴SDL_image:「嘿,使用這個更新的libpng!」
我來看看。我只是編輯我的帖子,你會檢查PLZ嗎?多謝了朋友! – Diaz
你的技巧證實了這個問題。嘗試清理緩存並重建。重命名lib不應該是最好的解決方案。祝你好運;) –
你是對的。我調整了SDL2_image的配置文件,現在它像一個魅力一樣工作。再次感謝! – Diaz