libjpeg-turbo 是一个致力于提升编解码速度的 JPEG 库。它基于 libjpeg 进行了改造,用 SIMD 指令集 (MMX、SSE2、NEON) 重写了部分代码,官网称相对于 libjpeg 有 2 到 4 倍的性能提升。

在 Windows 系统下使用 MinGW 编译 libjpeg-turbo,详细过程如下:

构建要求

  1. libjpeg-turbo 源码
    libjpeg-turbo官网下载源码,本例中使用的libjpeg-turbo版本是1.4.2。
  2. CMake

    • CMake v2.8.8 或以上版本,安装时勾选“Add CMake to the system PATH ...”,或把CMake安装路径手动添加到系统环境变量PATH中。
    • 安装完之后在命令提示符工具中使用“cmake -version”验证是否安装配置成功。
  3. MinGW

    • 如果在Windows系统上构建,推荐使用MinGW-buildstdm-gcc。它们能够在开始菜单生成一个启动相应编译器的命令提示符链接。
    • 由于本机安装了MinGW,所以就不再需要上面提到的那两个工具了,只需确保“mingw32-make.exe”的安装路径在系统环境变量PATH中即可。
    • 安装完之后在命令提示符工具中使用“mingw32-make -version”验证是否安装配置成功。
  4. 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版本的库)。

标签: Windows, MinGW, libjpeg-turbo, libjpeg

添加新评论