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目录,我们发现已经生成一系列文件。zlib静态库只需要zlib-1.2.11目录生成的三个文件,zlib.h / zconf.h / zlib.lib,但是请勿使用此时生成的zlib.lib,使用VS2013测试此时生成的zlib.lib静态库,使用函数uncompress,将一直断在汇编L_get_length_code_mmx.lib(亲身经历)。我们需要在VS2013将预处理器中ASMINF宏删除重新编译一份工程(不要着急,稍后就说怎么做)。那么,我们之前做的工作是否白费了呢?不是的。

9.zlib-1.2.11目录,进入contrib目录,再进入vstudio目录,选择你的VC版本目录,具体看对应的表,VS2013选择vc12目录;
| VS 6.0 | VC6.0 |
| VS 2002 | VC7.0 |
| VS 2003 | VC7.1 |
| VS 2005 | VC8.0 |
| VS 2008 | VC9.0 |
| VS 2010 | VC10 |
| VS 2012 | VC11 |
| VS 2013 | VC12 |
| VS 2015 | VC14 |



10.打开zlibvc.sln,进入工程(再坚持一会,编译马上好),选择编译生成Release发布版(勿选择Debug)。再选中zlibstat,右键属性,配置属性,C/C++,预处理器,预处理器定义,编辑,删除ASMINF。

11.右键 zlibstat,重新生成。我们使用zlib.lib静态库,只要生成这一个就够了。也可以整个工程全部重新编译生成。

12.进入..\zlib-1.2.11\contrib\vstudio\vc12\x86\ZlibStatRelease,我们发现zlibstat.lib。此版本使用uncompress正常,无断在汇编L_get_length_code_mmx.lib的错误。

13.使用zlibstat.lib需要头文件,zlib.h与zconf.h。具体使用,我将写一篇随笔。

zlib1.2.11静态编译的更多相关文章
- libcurl-7.54.1附加zlib1.2.11的编译
手上有个小程序需要通过HTTP协议通信,选择了出名的libcurl作为支持库.由于网上的教程多是命令行编译,本人记性不好,比较讨厌记住一堆命令,因此折腾了一天通过VS对libcurl和zlib进行了编 ...
- Arm64架构下静态编译Nginx
这段时间,我一直忙于将 Rainbond 源码构建模块移植到 Arm64/aarch64 架构中.这一源码构建模块可以将指定代码仓库中包含的源码,拉取构建成为容器镜像,在各种容器平台中运行.目前支持的 ...
- C++ Qt 框架静态编译 操作记录
谁愿意写个程式出来之后还附带一堆DLL,尤其是名字如此明显的名字. 于是在网上看了看,是需要下载源代码然后进行编译的,但是看了看别人说的编译时间,长达几个小时,瞬间就感觉不想做了.因为我还需要抓紧时间 ...
- VS2010使用静态编译的qt库(Qt 5)
Qt 5引入了一种新的编写方式. Qt开发界面很方便,但发布程序就不那么方便了,你的把引用到的dll一起发布才行,要是能静态编译就好了,发布的时候只有一个exe多方便. 虽然以前为了方便,直接安装的q ...
- QT5静态编译教程,主要针对vs2012(渡世白玉)
QT5,VS2012静态编译,所有的库准备充分的话qwebkit也可以静态编译通过,但是我编译的版本使用中如果用了QWEBVIEW控件在连接时会出错. 注:我自己编译的环境是:win server 2 ...
- VS2010使用静态编译的qt库
Qt开发界面很方便,但发布程序就不那么方便了,你的把引用到的dll一起发布才行,要是能静态编译就好了,发布的时候只有一个exe多方便. 虽然以前为了方便,直接安装的qt-windows-opensou ...
- c++11 静态断言
c++11 静态断言 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #includ ...
- SpiderMonkey js引擎的静态编译与使用, SpiderMonkey的使用
SpiderMonkey js引擎的静态编译与使用 2017年10月02日 02:51:22 yaolixing01 阅读数:536 原文出处: http://yaolixing.oltag.co ...
- Win7下静态编译QT5.12源码
官方参考文档:https://doc.qt.io/qt-5/build-sources.html CSDN博客:https://blog.csdn.net/GG_SiMiDa/article/deta ...
随机推荐
- bzoj 1835: [ZJOI2010]base 基站选址
Description 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄 ...
- bzoj 3718: [PA2014]Parking
Description 你的老板命令你将停车场里的车移动成他想要的样子. 停车场是一个长条矩形,宽度为w.我们以其左下角顶点为原点,坐标轴平行于矩形的边,建立直角坐标系.停车场很长,我们可以认为它一直 ...
- Saltstack的安装和配置
1.安装salt 因为系统自带的yum源不支持saltstack安装包的支持,所以需要安装第三方yum源(epel) # yum -y install epel-release salt分为主服务器( ...
- Nodejs真.多线程处理
前言 Threads à gogo 是nodejs 的原生模块,使用这个模块可以让nodejs 具备多线程处理功能 安装方法 npm install threads_a_gogo 下载测试源码 git ...
- pc端常用导航
应为经常要写网站,导航部分基本一样,没必要每次都写一遍,下次直接来复制: HTML: <nav> <div class="clearfix container"& ...
- Kettle中忽略错误行继续执行
在kettle执行的过程中,如果遇到错误,kettle会停止运行.在某些时候,并不希望kettle停止运行,所以就要处理下这些错误行. 例如这两天发现在一个转换中,总数出现一些不规则数据,这些数据一出 ...
- C# 字符串的连接
1.利用 "+"(加号)运算符: string str = "Hello"+ "World": console.WriteLine(str) ...
- MSSQLSERVER并行度
Microsoft SQL Server最大并行度(MAXDOP) 配置选项控制并行计划用于执行查询的处理器的数目.此选项确定用于执行工作并行查询计划运算符的计算和线程资源.根据是否 SQL Serv ...
- css实现网格背景
只使用一个渐变时,我们能创建的图案并不多,当我们把多个渐变图案组合起来,让他们透过彼此的透明区域显现时,神奇的事情就发生了!我们首先想到的是把水平和水质条纹叠加起来,就可以得到各种各样的网格. 1. ...
- linux下vsftpd的安装及配置使用详细步骤
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点. vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BS ...