zlib-1.2.11在双平台下编译

[TOC]

一、Windows平台

1.1 基于Visual Studio

Visual Studio实乃宇宙第一IDE,在它的帮助下,编译zlib显得如此的简单。

首先,我们需要从madler/zlib: A massively spiffy yet delicately unobtrusive compression library. (github.com)下载zlib的源码,

图1 Visual Studio工程所在路径

如图所示,双击打开其中的zlibvc.sln,即可。
图2 选择编译版本

图3 选择编译平台

图4 重新生成解决方案

之所以说Visual Studio是宇宙第一IDE,比起通过命令行来操作,图形化的界面大幅降低了用户的操作难度。几乎无需操作手册,便可以直观地选择编译哪个版本。

生成过程中,有可能会遇到如下错误:

图5 命令执行失败

仔细观察命令cd ..\..\..\masmx86,通过查看zlib文件夹的目录结构,我们发现这里应该是cd ..\..\masmx86,因而只需要在项目->属性中,将命令行稍作修改即可:
图6 修改位置

最终,生成的文件会位于工程目录下按编译平台区分的文件夹中,我们只需要按需采取即可:
图7 生成文件夹


二、Linux平台

不像Windows下有强大的VS支持,在Linux下我们只得采用命令行的方式进行编译安装。
从官网上下载zlib的源码包,解压并进入,我们可以使用如下命令查看zlib支持的编译配置:


图8 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

或许有读者在执行第一步时会遇到如下问题:


图9 配置异常

通过查看configure.log,可以定位到出现问题的原因如下:


图10 配置异常原因

gcc并没有找到文件,google一下发现只需额外使用如下命令(以CentOS8为例)即可:
sudo yum install glibc-devel.i686

最终,编译出的内容便会存在于当前目录下的x86_release文件夹中

你可能感兴趣的:(zlib-1.2.11在双平台下编译)