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 ...
随机推荐
- 【MFC】画线
1.DrawTestDlg.h afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT ...
- UML笔记(3):顺序图、Sequence Diagram
http://www.cnblogs.com/xueyuangudiao/archive/2011/09/22/2185364.html 目录 含义 要素: 1 活动者 2 对象 3 生命线 4 控制 ...
- libyuv编译(各平台)【转】
转自:http://blog.csdn.net/wszawsz33/article/details/51669719 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] Getti ...
- 嵌入式Linux下Camera编程--V4L2【转】
转自:http://blog.csdn.net/fwqlzz/article/details/51126653 版权声明:本文为博主原创文章,未经博主允许不得转载. USB video class(又 ...
- [置顶] Linux 虚拟地址与物理地址的映射关系分析【转】
转自:http://blog.csdn.net/ordeder/article/details/41630945 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文 ...
- app:compileDebugNdk,NDK
Error:Execution failed for task ':app:compileDebugNdk'. > Error: Your project contains C++ files ...
- UCRT: VC 2015 Universal CRT, by Microsoft
https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/ App local UCRT DLL ...
- python每日一类(3):os和sys
os与sys模块的官方解释如下: os: This module provides a portable way of using operating system dependent functio ...
- Weblogic 监控工具汇总及简介
https://blog.csdn.net/hualusiyu/article/details/39608637
- Tomcat服务器与HTTP协议
Tomcat服务器与HTTP协议 一. Tomcat服务器 1.tomcat服务器 1.web :网页,它代表的是网络上的资源.(java技术开发动态的web资源,即动态web页面,在Java中,动 ...