Windows / Linux 一件编译zlib库
一. 下载zlib库 : http://www.zlib.net
本文以 zlib-1.2..tar.xz 为例
二. 解压文件得到 zlib-1.2. 文件夹,修改 zlib-1.2./CMakeLists.txt 文件,在 set(VERSION "1.2.11") (大约6行)下面添加如下两句:
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)
这两句的租用主要是指定可执行文件和库文件的输出目录,方便查看.
返回上一级,在 zlib-1.2. 相同目录下新建 build_vs_project.bat 脚本,输入如下内容
echo off
color 0A set CMAKE=cmake
set BUILD_DIR=vs_project cd zlib*
set ZLIB_PATH=%cd%
echo %ZLIB_PATH%
cd .. if not exist %BUILD_DIR% (
md %BUILD_DIR%
) cd %BUILD_DIR% %CMAKE% %ZLIB_PATH% pause
运行该脚本会产生一个 vs_project 文件夹,里面包含了一个vs解决方案,这个解决方案就是zlib的源码和一些测试用例,如下图(vs2015):

你可以通过这个解决方案查看zlib源码,也可以编译得到zlib库.但这样需要打开vs,并不方便.下面介绍一键编译的方法.
三.在 zlib-1.2.11 相同目录下新建 onekey_build_vs.bat 脚本,输入以下代码:
echo off
color 0A set CMAKE=cmake
set BUILD_DIR=vs_build cd zlib*
set ZLIB_PATH=%cd%
echo %ZLIB_PATH%
cd .. if not exist %BUILD_DIR% (
md %BUILD_DIR%
)
cd %BUILD_DIR% ::设置VS工具集,相当于指定VS版本,取决于VS的安装路径
set VS_DEV_CMD="D:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat"
call %VS_DEV_CMD% rem Debug版本
%CMAKE% %ZLIB_PATH% -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug
nmake /f Makefile
move ../bin ../vs_bin_debug rem Release版本
%CMAKE% %ZLIB_PATH% -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
nmake /f Makefile
move ../bin ../vs_bin_release pause
运行此脚本,就可以一键生成debug和release两个版本的zlib库,不用打开vs,十分方便.产生的文件分别位于 vs_bin_debug 目录和 vs_bin_release 目录下.
文件如下:


四.有windows版本,当然也有linux版本.如下 onekey_build_linux.sh
#!/bin/bash CMAKE='cmake'
BUILD_DIR='linux_build' cd zlib*
ZLIB_PATH=`pwd`
echo $ZLIB_PATH
cd .. if [ ! -d $BUILD_DIR ]; then
mkdir $BUILD_DIR
fi
cd $BUILD_DIR
# Debug 版本
$CMAKE $ZLIB_PATH -DCMAKE_BUILD_TYPE=Debug
make
mv ../bin ../linux_bin_debug # Release 版本
$CMAKE $ZLIB_PATH -DCMAKE_BUILD_TYPE=Release
make
mv ../bin ../linux_bin_release
生成的文件分别在: linux_bin_debug 和 linux_bin_release 目录下,如下:
[root@localhost zlib]# ll linux_bin_debug/
total
-rwxr-xr-x. root root Sep : example
-rwxr-xr-x. root root Sep : example64
w-r--r--. root root Sep : libz.a
▽rwxrwxrwx. root root Sep : libz.so -> libz.so.
lrwxrwxrwx. root root Sep : libz.so. -> libz.so.1.2.
-rwxr-xr-x. root root Sep : libz.so.1.2.
-rwxr-xr-x. root root Sep : minigzip
-rwxr-xr-x. root root Sep : minigzip64
[root@localhost zlib]# ll linux_bin_release/
total
-rwxr-xr-x. root root Sep : example
-rwxr-xr-x. root root Sep : example64
-rw-r--r--. root root Sep : libz.a
lrwxrwxrwx. root root Sep : libz.so -> libz.so.
lrwxrwxrwx. root root Sep : libz.so. -> libz.so.1.2.
-rwxr-xr-x. root root Sep : libz.so.1.2.
-rwxr-xr-x. root root Sep : minigzip
-rwxr-xr-x. root root Sep : minigzip64
Windows / Linux 一件编译zlib库的更多相关文章
- windows下使用cmake编译zlib与libpng libjpeg
win7下使用VS2010编译jpeglib 1.下载源代码下载地址:http://www.ijg.org/files/, 选择最新版本的windows版本压缩包,进行下载. jpeg ...
- 如何在 window7 环境编译 zlib 库?
1.下载最新版本 zlib 库 `下载地址:http://www.zlib.net/ 2.打开vc14项目 解压下载的 zlib.zip 压缩包并打开zlib1211\zlib-1.2.11\cont ...
- [转]Windows下使用VS2015编译openssl库
转自:http://blog.csdn.net/alger_magic/article/details/52584171 目标:编译vs环境下openssl库 工具: 1. 编译环境win10+vs2 ...
- Linux 下 GCC 编译共享库控制导出函数的方法
通过一些实际项目的开发,发现这样一个现象,在 Windows 下可以通过指定 __declspec(dllexport) 定义来控制 DLL(动态链接库)中哪些函数可以导出,暴露给其他程序链接使用,哪 ...
- windows openssl-1.1.1 编译静态库和动态库
一下为windows上安装过程 1.下载 openssl-1.1.0.tar.gz 2.安装 ActivePerl, 可以到http://www.activestate.com/activeperl/ ...
- Windows/Linux javac/java编译运行引入所需的jar包
> Windows 假设要引用的jar放在D:/test目录下,名字为t1.jar, java源文件放在D:/test/src目录下,名字为t2.java. 编译: javac -cp d: ...
- windows/Linux动态加载链接库问题
windows: LoadLibraryA 指定的可执行模块映射到调用进程的地址空间并返回该 DLL 的句柄 HMODULE LoadLibraryA( LPCTSTR lpLibFileName// ...
- Windows下zlib库和libPng库的编译和使用
关于zlib库和libpng是干嘛的,我就不说了,度娘和谷歌都能告诉你.这里主要记录下windows下如何利用vs2010编译和使用这两个库. 一.zlib库的编译 首先要下载这个库,这个谷歌和百度也 ...
- zlib开发笔记(四):zlib库介绍、编译windows vs2015x64版本和工程模板
前言 Qt使用一些压缩解压功能,介绍过libzip库编译,本篇说明zlib库.需要用到zlib的msvc2015x64版本,编译一下. 版本编译引导 zlib在windows上的mingw32 ...
随机推荐
- HDU 3389 Game (阶梯博弈)
Game Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Submit Status D ...
- 跳石头(NOIP2015) (二分查找)
原题传送门 好久没更了..昨天去学zkw线段树,被zxyer狠狠地D了一顿.. 来补坑.. 这是一道很奇特的题目. 根据题目可以看出这道题有二分题具有的性质.. 不懂二分性质的可以看我以前的博客 传送 ...
- 转 python数据类型详解
python数据类型详解 目录 1.字符串 2.布尔类型 3.整数 4.浮点数 5.数字 6.列表 7.元组 8.字典 9.日期 1.字符串 1.1.如何在Python中使用字符串 a.使用单引号(' ...
- python--jinja2
from jinja2 import Template # 创建一个Template模板去渲染它 s = "my name is {{mashiro}}" t = Template ...
- bootstrapValidator 版本差异问题导致的submitHandler失效问题
我用过的两个版本: v0.5.2-dev,0.4.5 这里针对于提交方法进行说明一下,如下代码: <script> $(function () { $("#addUserForm ...
- wsgi的学习(1):什么是WSGI
本文来自:http://www.nowamagic.net/academy/detail/1330310 WSGI,全程是:Web Server Gateway Interface,或者python ...
- MVC中@Html.Action的用法(类似自定义控件)
MVC项目中如果有公共部分的代码就可以单独拿出来作为控件来用(比如头部和底部代码).跟ASP.NET中的ASCX实现的效果一样,但MVC比它方便的多. 一.@Html.Action的用法 @Html. ...
- oracle修改字段类型由varchar2修改为clob类型
oracle修改字段类型由varchar2修改为clob类型 http://blog.sina.com.cn/s/blog_9d12d07f0102vxis.html
- JquerySession使用
添加数据 $.session.set('key', 'value') 删除数据 $.session.remove('key'); 获取数据 $.session.get('key'); 清除数据 $.s ...
- css3帮你轻松实现圆角效果,不一样的前端页面。
在Web前端页面实现圆角效果,CSS3帮你轻松实现,一个人人皆知的属性 圆角边框的绘制是Web页面和Web应用程序中经常用来美化页面效果的手法之一.今天,小编为大家介绍CSS3提供的可以将矩形变为圆角 ...