現象簡述
公司同事今天告訴我,我們的軟件有一個問題,就是一個圖像顯示的問題,顯示的圖像有部分鏤空缺少的狀況。
原因
對比了多個版本的程序,發現僅僅在Linux版本上出現了這個問題,Windows版本沒有出現。查看了一下代碼歷史,並沒有發現有代碼的不一致。調試了一下程序,發現問題出現在使用libwebp
進行圖像解碼的時候,出來的結果就已經是有缺少的。
看了下Linux下使用的libwebp
版本,發現是v0.4.2
而windows上使用的是v0.6.1
,於是編譯了一個新版本的放上去,問題不再出現。
記錄下libwebp的編譯修改
這里記錄一下編譯libwebp
動態庫,便於以后需要的時候使用。
1、下載源碼
wget https://github.com/webmproject/libwebp/archive/v0.6.1.tar.gz
#或下載最新版本
wget https://github.com/webmproject/libwebp/archive/v1.0.3.tar.gz
2、修改makefile.unix
因為這個腳本,只提供了編譯為.a
靜態庫的操作,所以需要對其進行簡單的修改。
不多說,直接上圖好了
添加編譯選項-fPIC
添加一個libwebp.so的目標(這里設置siname為libwebp.so.4是用於生成的so直接替換掉原來的低版本的,就不去做軟鏈接或者重新編譯鏈接了)
把這個輸出目標添加到all中(這里我就簡單的直接改了下面一個使用到libwebp.a的,改成.so了)