windows上编译zlib-1.2.8

来源:互联网 发布:vlc mac 编辑:程序博客网 时间:2024/06/10 01:34

 MSVC编译

  使用VS(x86)命令行工具进入到zlib根目录,执行 nmake -f win32/Makefile.msc ,在根目录下生成:zlib.lib(静态库)  zdll.lib(动态库的导入库)  zlib1.dll(动态库) 。必要的头文件有zlib.h和zconf.h

 

MingW编译

  进入到MinGW编译器目录中,运行mingwvars.bat批处理设置编译环境。
  进入到zlib目录,然后用make命令执行,既可编译出动态库zlib1.dll,libz.dll.a导入库,以及静态库libz.a。
  mingw32-make -f win32/makefile.gcc



使用zliblib,在链接时出现错误,时而是LNK2001,提示和msvcrt冲突,时而是LNK2005提示未决的符号错误。摸索了一上午终于搞定了如何使用zlib静态库和动态库。

一 使用静态库
在vc6下,需要把zlib.h、zconf.h和zlib工程中生成的zlib.lib文件放到你的代码目录下,并且设置项目属性:project->settings->link->category选择input,在library modules中的最后面输入一个空格和zlib.lib,在lgnore libraries输入MSVCRT(否则这个默认库和zlib库会有冲突),然后project-> settings-> c/c++->Category中选择Code   generation,在Use   run-time   Library中选择Debug Multithreaded DLL
如果library modules中输入zlib.lib了,那么在代码中添加
#include "zlib.h"即可,否则还要加入下面这句
#pragma comment( lib, "zlib.lib")

二 使用动态库
同样,把zlib.h、zconf.h和zlib工程中生成的zlib1.libzlib1.dll复制到自己的源程序文件夹中,代码中添加
#include "zlib.h"
#pragma comment( lib, "zlib1.lib")

推荐第二种方法。