Windows10,编译zlib

Windows10,编译zlib 。

一、下载zlib

  我下载的第3个,US(zlib.net).

我下载的是zlib-1.2.11,下载完解压出来即可。下边就开始编译吧。(包括动态库和静态库两种)

二、编译

1、打开VS2010的命令窗口,以管理员身份运行

2、切换到zlib/contrib/masmx86, 运行bld_ml32.bat。 如果是64位,请切换到zlib/contrib/masmx64, 运行bld_ml64.bat

3、32位运行之后,在这个文件夹里面,多生成两个 *.obj 文件。

4、zlib的vs sln解决方案文件可以在如下路径中找到:zlib-1.2.11/contrib/vstudio/vc10/zlibvc.sln,打开这个解决方案中包含6个工程。其中:

(1). zlibvc项目,负责生成动态链接库zlibwapid.dll和对应的导入库zlibwapid.lib。直接右键此工程,生成如下。

结果 --->  

(2). zlibstat项目,负责生成静态链接库zlibstat.lib。  右键此工程,直接生成。

(3). testzlibdll项目,负责 测试(1)生成的动态链接库zlibwapid.dll。  右键此工程,直接生成。

出现错误:2>LINK : fatal error LNK1104: 无法打开文件“x86\ZlibDllDebug\zlibwapi.lib”

成功1个,失败1个。

解决方案:

(4). testzlib项目,负责测试(2)生成的静态链接库zlibstat.lib。  右键此工程,直接生成。

(5). 最后我们在debug模式下编译整个解决方案。生成的dll和lib文件可在相应的文件夹中找到。

========== 全部重新生成: 成功 6 个,失败 0 个,跳过 0 个 ==========

如果出现如上错误:LINK : fatal error LNK1104: 无法打开文件“x86\ZlibDllDebug\zlibwapi.lib”

是因为zlibwapi.lib 被改名为zlibwapid.lib 。多了 一个 d   !!!在链接器 -> 输入  添加一个 d 即可。

这里我们把静态库zlibstat.lib和动态库(zlibwapid.dll/zlibwapid.lib)以及zlib.h/zconf.h文件放在一个文件夹中。方便日后工程使用。(zlibconf.h文件我这里没有,只有zconf.h,跟链接里说的不一致,还不清楚是什么问题,继续下面的)

 

三、使用

下边介绍如何使用编译好的动态或是静态库。(假设项目工程已经建立完毕

1. zlib静态库:zlibstat.lib

  1. 包含头文件

    属性–C/C+±-常规–附加包含目录(添加包含.h文件的目录)

  2. 定义宏

    属性–C/C+±-预处理器–预处理器定义:添加 ZLIB_WINAPI ASMV ASMINF

  3. 项目包含.lib文件所在的目录:

    属性–链接器–常规–附加库目录

  4. 项目包含.lib文件

    属性–链接器–输入–附加依赖项(libstat.lib)

  5. 项目代码中 #include “zlib.h”

编译生成.exe即可使用。

2. 动态库 zlibwapi.lib

  1. 包含头文件

    属性–C/C+±-常规–附加包含目录(添加包含.h的目录)

  2. 定义宏

    属性–C/C+±-预处理器–预处理器定义:添加 ZLIB_WINAPI

  3. 项目包含.lib文件所在的目录:

    属性–链接器–常规–附加库目录

  4. 项目包含.lib文件

    属性–链接器–输入–附加依赖项(zlibwapi.lib)

  5. 项目代码中 #include “zlib.h”

编译生成.exe文件需要.dll文件支持(动态加载)

参考链接:https://blog.csdn.net/u011740322/article/details/51207809

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值