现象简述
公司同事今天告诉我,我们的软件有一个问题,就是一个图像显示的问题,显示的图像有部分镂空缺少的状况。
原因
对比了多个版本的程序,发现仅仅在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了)