windows下使用cmake编译zlib与libpng libjpeg

时间:2023-03-08 17:37:54

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 win32\makefile.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 scripts\makefile.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++Tool\cmake-3.5.0-win32-x86\bin(例如)然后待命 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:\Libraries\zlib-1.2.8\win32
点configure 选好对应编译器,然后generate

进入D:\Libraries\zlib-1.2.8\win32 打开.sln一路编译完成。 然后将本目录下的zconf.h复制到D:\Libraries\zlib-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:\Libraries\zlib-1.2.8\win32\Debug\zlibd.lib。
然后点config,generate。

进入where to build 设定好的目录中:我也是libpng16/win32 双击sln 无脑编译完成。