windows下使用cmake编译zlib与libpng libjpeg
Posted hjbf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows下使用cmake编译zlib与libpng libjpeg相关的知识,希望对你有一定的参考价值。
win7下使用VS2010编译jpeglib
1、下载源代码下载地址:http://www.ijg.org/files/,
选择最新版本的windows版本压缩包,进行下载。
jpegsr9a.zip 1042 Kb Sun Jan 19 10:26:10 2014 Zip Compressed Data
2、解压缩压缩包,修改文件名jconfig.vc为jconfig.h
3、打开VS2010的命令行窗口
程序菜单
Microsoft Visual Studio 2010
----Visual Studio Tools
--------Visual Studio 命令提示(2010)
4、命令行窗口,进入jpeglib解压缩后的目录
cd C:jpeg-9
5、命令行窗口,编译jpeglib,生成libjpeg.lib
nmake /f makefile.vc
6、使用jpeglib
在项目的[附加包含目录]添加jpeglib目录,
在项目的[附加库目录]添加jpeglib目录,
在项目的[附加依赖项]添加libjpeg.lib,
就可以在项目中使用jpeglib了。
7、注意事项
libjpeg.lib是用c语言开发的,
如果在C++程序里使用,需要用extern "C" { }包含一下。
如下:
extern "C"
{
#include "jpeglib.h"
}
zlib
下载地址:http://www.zlib.net/
当前版本:1.2.8
命令行输入:
1
2 |
copy win32makefile.gcc makefile.gcc
mingw32-make -f makefile.gcc |
生成libz.a文件
libpng
下载地址:http://www.libpng.org/pub/png/libpng.html
当前版本:1.6.6
打开scripts/makefile.gcc设置zlib路径:
1
2 |
ZLIBINC = ../zlib-1.2.8
ZLIBLIB = ../zlib-1.2.8 |
拷贝scripts/pnglibconf.h.prebuilt到源码目录,改名为pnglibconf.h
命令行输入:
1
2 |
copy scriptsmakefile.gcc makefile.gcc
mingw32-make -f makefile.gcc |
生成libpng.a文件
libjpeg
下载地址:http://www.ijg.org/
当前版本:9
cmake:http://www.cmake.org/cmake/resources/software.html
zlib:http://www.zlib.net/
libpng:http://www.libpng.org/pub/png/libpng.html
解压cmake并进入到:F:常用工具C++Toolcmake-3.5.0-win32-x86in(例如)然后待命 ID:1。
解压zlib128 libpng16到D:Libraries(例如) 然后待命 id:2。
先编译zlib,因为libpng依赖它。
切换到1,打开cmake-gui.exe,
where is the source:D:/Libraries/zlib-1.2.8
where to build:D:Librarieszlib-1.2.8win32
点configure 选好对应编译器,然后generate
进入D:Librarieszlib-1.2.8win32 打开.sln一路编译完成。 然后将本目录下的zconf.h复制到D:Librarieszlib-1.2.8中。别问为什么。至此zlib秒编译完成。
libpng步骤如上。点config 会出来一堆错误Cmake Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) 。点击advance勾选框
在里面将ZLIB_INCLUDE_DIR=D:/Libraries/zlib-1.2.8
ZLIB_LIBRARY=D:Librarieszlib-1.2.8win32Debugzlibd.lib。
然后点config,generate。
进入where to build 设定好的目录中:我也是libpng16/win32 双击sln 无脑编译完成。
以上是关于windows下使用cmake编译zlib与libpng libjpeg的主要内容,如果未能解决你的问题,请参考以下文章