去年曾经写过文章使用libjpeg-turbo,不过当时是基于Linux X86平台的,现在需要在Windows下使用这个库,于是上网找了一些编译方法,形成此文。


一、先期工作

1、下载CMake

下载地址为:https://cmake.org/download/,当前最新版本为3.5.2,可直接下载编译好的二进制压缩包:cmake-3.5.2-win32-x86.zip。

2、下载nasm

下载地址为:https://sourceforge.net/projects/nasm/,当前最新版本为2.07。下载后需要安装,并设置环境变量PATH(后面在VS2010编译要使用到)。(默认路径:C:\Program Files (x86)\NASM,设置PATH成功后,在命令行输入nasm -h可以看到帮助信息)

3、下载libjpeg-turbo源码

下载地址为:https://github.com/libjpeg-turbo/libjpeg-turbo,这个是它的仓库,在Releases中有不同版本可下载。

二、生成VS2010解决方案

双击cmake-gui.exe,选择libjpeg-turbo源码目录,选择需要编译的目录,再点击configure按钮,在弹出的对话框选VS2010(还有其它VS版本可供选择),点击Finish即可进行Configure,再点击Generate即可生成解决方案文件:libjpeg-turbo.sln。如下图所示。


注:在此界面,可调整参数,比如是否生成动态库、静态库,安装目录(默认是c:/libjpeg-turbo)。调整后,需要重新进行Congifure和Generate两个步骤。

三、编译

双击打开libjpeg-turbo.sln,“ALL_BUILD”右键“生成”,即可进行编译。按上文步骤,是可正常编译的,如有问题,可能是nasm环境变量没有配置正确。为减小库文件体积,建议选择Release版本。
“INSTALL”右键“生成”,即可在c盘的libjpeg-turbo目录找到头文件和库文件,以及二进制文件。其中turbojpeg-static.lib是静态库。

注:在MFC中使用该库,会提示默认库冲突:
msvcrt.lib(cinitexe.obj) : warning LNK4098: 默认库“libcmt.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

解决方法是:在项目属性->链接器->输入->忽略特定默认库,添加libcmt.lib。

李迟 2016.4.19 周二 晚


Logo

更多推荐