[TOC]
一、Windows平台
1.1 基于Visual Studio
Visual Studio实乃宇宙第一IDE,在它的帮助下,编译zlib显得如此的简单。
首先,我们需要从madler/zlib: A massively spiffy yet delicately unobtrusive compression library. (github.com)下载zlib的源码,
如图所示,双击打开其中的zlibvc.sln,即可。
之所以说Visual Studio是宇宙第一IDE,比起通过命令行来操作,图形化的界面大幅降低了用户的操作难度。几乎无需操作手册,便可以直观地选择编译哪个版本。
生成过程中,有可能会遇到如下错误:
仔细观察命令
cd ..\..\..\masmx86
,通过查看zlib文件夹的目录结构,我们发现这里应该是cd ..\..\masmx86
,因而只需要在项目->属性
中,将命令行稍作修改即可:最终,生成的文件会位于工程目录下按编译平台区分的文件夹中,我们只需要按需采取即可:
二、Linux平台
不像Windows下有强大的VS支持,在Linux下我们只得采用命令行的方式进行编译安装。
从官网上下载zlib的源码包,解压并进入,我们可以使用如下命令查看zlib支持的编译配置:
当然,这里的编译配置笔者也没有完全搞明白是干嘛的。仅对于能搞明白的部分,各参数解释如下:
参数 | 释义 |
---|---|
--const | 函数仅接受const数组入参 |
--zprefix | 链接时的函数签名追加z前缀(仅用来防止在大规模程序中的名称冲突) |
--prefix | make install时安装的位置 |
--static | 仅编译静态库(默认同时编译静态库的动态库) |
--64 | 编译64位版本 |
搞清楚了这几个参数的含义,其实剩下的也就没有什么技术难度了。
2.1 64位版(在64位的机器上编译64位库)
./configure --prefix=x86_64_release --64
make
make install
最终,编译出的内容便会存在于当前目录下的x86_64_release文件夹中
2.2 32位版(在64位的机器上编译32位库)
CFLAGS=-m32 ./configure --prefix=x86_release
make
make install
或许有读者在执行第一步时会遇到如下问题:
通过查看configure.log,可以定位到出现问题的原因如下:
gcc并没有找到<gnu/stubs-32.h>文件,google一下发现只需额外使用如下命令(以CentOS8为例)即可:
sudo yum install glibc-devel.i686
最终,编译出的内容便会存在于当前目录下的x86_release文件夹中