Windows下使用MinGW编译libjpeg-turbo
libjpeg-turbo 是一个致力于提升编解码速度的 JPEG 库。它基于 libjpeg 进行了改造,用 SIMD 指令集 (MMX、SSE2、NEON) 重写了部分代码,官网称相对于 libjpeg 有 2 到 4 倍的性能提升。
在 Windows 系统下使用 MinGW 编译 libjpeg-turbo,详细过程如下:
构建要求
- libjpeg-turbo 源码
在libjpeg-turbo官网下载源码,本例中使用的libjpeg-turbo版本是1.4.2。 CMake
- CMake v2.8.8 或以上版本,安装时勾选“Add CMake to the system PATH ...”,或把CMake安装路径手动添加到系统环境变量PATH中。
- 安装完之后在命令提示符工具中使用“cmake -version”验证是否安装配置成功。
MinGW
- 如果在Windows系统上构建,推荐使用MinGW-builds或tdm-gcc。它们能够在开始菜单生成一个启动相应编译器的命令提示符链接。
- 由于本机安装了MinGW,所以就不再需要上面提到的那两个工具了,只需确保“mingw32-make.exe”的安装路径在系统环境变量PATH中即可。
- 安装完之后在命令提示符工具中使用“mingw32-make -version”验证是否安装配置成功。
- NASM
NASM0.98 或以上版本(如果构建64位库则需要NASM 2.05或以上版本)。下载NASM后解压,只需把NASM目录手动添加到系统环境变量PATH中即可。
构建步骤
打开命令提示符工具cmd,依次输入如下命令:
cd {build_directory}
cmake -G "MinGW Makefiles" {source_directory}
mingw32-make
其中“{build_directory}”是想要生成构建文件的目录,“{source_directory}”是libjpeg-turbo源码所在的目录。
最后生成的文件如下(在{build_directory}目录下):
- libjpeg.a
libjpeg API的静态链接库 - sharedlib/libjpeg-{version}.dll
DLL的libjpeg API的动态链接库(DLL) - sharedlib/libjpeg.dll.a
libjpeg API的导入库 - libturbojpeg.a
TurboJPEG API的静态链接库 - libturbojpeg.dll
TurboJPEG API的动态链接库(DLL) - libturbojpeg.dll.a
TurboJPEG API的导入库
其中“{version}” 是 62,7,或8,取决于libjpeg v6b (默认),v7,或v8的emulation是否启用。
如果想要生成Debug版本的库,只需在cmake命令行添加“-DCMAKE_BUILD_TYPE=Debug”参数即可。如果使用使用的是NMake,则不用使用“-DCMAKE_BUILD_TYPE=Release”参数(NMake默认构建的是Debug版本的库)。