zlib1.2.11静态库使用

1.打开VS2013,为了测试的便捷,我们新建Win32控制台程序,且项目名称为zlibTest;

2.为了项目的直观,选中如图三个文件,右键移除,点击删除。你可以不必这么做,只是测试;

3.将已编译生成的zlib1.2.11静态库zlibstat.lib与头文件zconf.h / zlib.h(zlib1.2.11静态编译),一起放入新建的文件夹CommonFiles,移动到与工程同级目录(你可以放置到喜欢的地方);

4.VS2013解决方案,选择工程名zlibTest,右键属性,我们修改输出目录与工作目录为..\..\bin\(勿忘记最后的\),方便调试与直接运行EXE(你可以按照自身的习惯修改);

5.VS2013解决方案,头文件右键,选择现有项。将CommonFiles里面的头文件zconf.h / zlib.h加入工程,且在调用zlib函数的.cpp或者.h文件,使用C调用约定#include包含zlib.h文件(zconf.h不用包含);

6.VS2013解决方案,右键属性,链接器,附加依赖项,编辑加入..\..\bin\CommonFiles\zlibstat.lib;

6.1亦可以使用#pragma comment(lib, "..\\..\\CommonFiles\\zlibstat.lib"),你选择喜欢的方法;

7.至此,我们使用zlib1.2.11静态库的环境已经搭好了,过程可以简略很多,仅为了方便初学者。让我们一起调用zlib官方的例子试试吧!

8.好事多磨,不是吗?。链接器报错说_compress与 _uncompress函数不认识。我们需要在VS2013解决方案,右键属性,C/C++,预处理器定义,加入宏ZLIB_WINAPI,现在再编译链接试试;

9.成功了,两个警告,一个是zlib官方例子使用strcpy,微软提示strcpy_s安全点;还有一个是LIBCMT冲突,可以在VS2013解决方案,右键属性,链接器,输入,忽略特定默认库,编辑加入LIBCMT.lib,我们再重新生成项目看看;

10.执行EXE,成功压缩与解压缩。

11.一些其他问题:使用zlib静态库,提示error LNK2026: 模块对于 SAFESEH 映像是不安全的。可以在VS2013解决方案,右键属性,链接器,命令行,加入/SAFESEH:NO。发布Release版本,上方有的操作,需要重复。你可以根据编译器或者链接器提示的错误,决定如何做。

原文地址:https://www.cnblogs.com/yangjinbang/p/8331381.html

时间: 2024-11-05 21:34:05

zlib1.2.11静态库使用的相关文章

zlib1.2.11静态编译

1.进入官网http://zlib.net/,下载且解压zlib1211.zip: 2. 打开已解压的zlib-1.2.11目录,找到win32文件夹 3.将Makefile.msc复制到上一层,也就是图2,未进入win32前的地方 4.打开VS2013命令行工具,使用cd命令进入zlib-1.2.11目录(第3步Makefile.msc所在的目录) 5.键入命令行:nmake /f Makefile.msc 6.回车执行 7.此时打开zlib-1.2.11目录,我们发现已经生成一系列文件.zl

zlib-1.2.8用VS2010编译生成动态静态库

1.官网下载地址 http://zlib.net/zlib128.zip 2.解压到指定目录 例如:E:\zlib-1.2.8 目录的内容如下: 3.在开始菜单中找到<Visual Studio命令提示(2010)> 单击,打开 4.利用命令进入到上面解压的目录 5.接着,进入E:\zlib-1.2.8\contrib 利用windows资源管理器打开对应的目录,可以看到,其中的内容如下 这里针对不同环境选择不同的编译环境 6.这里选择32位的环境,所以进入masmx86目录 7.执行bld_

libcurl-7.54.1附加zlib1.2.11的编译

手上有个小程序需要通过HTTP协议通信,选择了出名的libcurl作为支持库.由于网上的教程多是命令行编译,本人记性不好,比较讨厌记住一堆命令,因此折腾了一天通过VS对libcurl和zlib进行了编译.下面就将编译过程记录下作为备忘. 一.环境及库版本介绍 win10 64位.VS_professional_2013_with_update_5.curl-7.54.1.zlib-1.2.11 二.目的 生成libcurl静态库,并支持在xp下使用 三.开始 1.编译zlib 从http://w

(一〇二)静态库(.a)的打包

库是代码的集合,根据代码公开程度,分为开源库和闭源库. 其中闭源库主要包括静态库和动态库,是经过编译的二进制文件,看不到具体实现. 静态库的拓展名是.a或者.framework,动态库则是.dylib和.framework. 静态库在链接时会将库完整的复制到可执行文件中,被多次使用就有冗余拷贝. 动态库在链接时不复制,程序运行时系统会动态的加载,多个程序共享一个动态库,节省内存. 注意:项目中如果包含自制的动态库,上传到App Store会被拒绝,如果要上传App,应选择静态库. 静态库用于抽取

项目中遇到的问题-2:编译第三方静态库报错、查看静态库的类型、绘制圆形

这一周比较折腾,由于项目应用涉及到和其他产品线APP的互相通信,在高层领导英(yi)明(ta)神(hu)武(tu)的战略指导下,我开始了与其他组同事的联调之旅.这几天鄙司负责产品的上级同事莅临监工,对现在的情况又提出了一些改进,作为一名程序猿,我已经奉上我的双膝... 一.集成公司其他组的.a静态库,报错:duplicate symbole for architectecture i386 XXX  查了一下报错的地方,都是指示.a的库和工程里面某些.m文件冲突,正好同事提到之前有碰到过这种情况

Window中创建和使用静态库与动态库

一.静态库的创建和使用 1. 静态库的创建 (1) 在VS2013中选择菜单->File->New->Project,选择Visual C++ ->Win32选项,然后点击Win32 Project图标,选择Win32 Application Wizard,选择Application type下的Static library选项.工程名字为TestStaticLib. (2)在Solution Explorer的Header Files下新建一个test_header.h头文件 1

linux下编译qt5.6.0静态库——configure配置

 随笔 - 116  文章 - 4  评论 - 7 linux下编译qt5.6.0静态库--configure配置 linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberry选项: Android 选项: 生成makefile 遇到链接检查失败的情况 生成makefile后进行编译 编译时的错误 多重定义'QT_MODBUS()'和'QT_MODBU

Qt - Qt调用VS生成的C静态库

1,生成dll和lib库 在vs2010中新建工程,在向导中选择DLL,如下图所示: 新建两个文件mydll.h和mydll.c mydll.h代码如下: 1 #ifndef MYDLL_H 2 #define MYDLL_H 3 #ifdef __cplusplus // 4 extern "C"{ 5 #endif 6 __declspec(dllexport) int myFun(int a,int b); 7 8 #ifdef __cplusplus 9 } 10 #endif

QT中静态库的生成与使用

一. 静态库的生成    1. 测试目录: lib    2. 源码文件名: mywindow.h, mywindow.cpp, 类MyWindow继承于QPushButton, 并将文字设置为"I'm in class MyWindow";    3. 编写项目文件: mywindow.pro       注意两点:       TEMPLATE = lib       CONFIG   += staticlib    4. 生成Makefile:       qmake    5.