• [zlib] CMake + VS2015 下编译zlib,及使用小例


    下载与解压

    可以到zlib官网 http://zlib.net/ 下载,这个没有被墙的,如果下载,试一下换个网络再访问。因为我在公司的网络是访问不了的。

     我当前使用的是 zlib1.2.11版本。

    下载好后,解压出来,看看根目录下有一个CMakeLists.txt,就证明可以用CMake创建VS的工程了。

    CMake创建工程

    把source code和build the binaries的路径设置后好,点击【Configure】,出去的配置项中,需要看看其中包括了INSTALL的项目,路径最好都改为VC路径下;

    若不修改,默认在安装一步是会把lib、dll还有头文件安装到C盘中,后期使用的时候还需要手动添加这些路径到工程里去;

    用CMake配置工程时,前提也要把安装路径添加到环境变量中的Path里,不然CMake没法查找到这个库的路径的。

    所以为了方便,还是安装在VC路径最好。

    这里确认好后,就点击【Generate】,基本不会出问题的,就点击【Open Project】打开工程进行后面的步骤。

    编译与安装

    打开后,直接在【解决方案】上鼠标右键,再点【生成解决方案】,之前就是编译过程,等待一会儿:

    接着就是安装,对其中的【INSTALL】项目,右键【仅用于项目】=>【仅生成INSTALL】就可以执行安装操作了:

     

    完成

    小提示:

    最好是把Debug和Release版本的都编译安装好,并且在后期不同的版本里使用上对应版本的库。

    Debug版本:zlibd.lib  zlibd.dll

    Release版本: zlib.lib  zlib.dll

    头文件是一样的.

    例程

    main.cpp

     1 #include <stdio.h>
     2 #include <zlib.h>
     3 
     4 int main(int argc, char **args)
     5 {
     6     /*原始数据*/
     7     unsigned char strsrc[] = "这些是测试数据。123456789 abcdefghigklmnopqrstuvwxyz
    	abcdefghijklmnopqrstuvwxyz
    "; //包含字符
     8     unsigned char buf[1024] = { 0 };
     9     unsigned char strdst[1024] = { 0 };
    10     unsigned long srclen = sizeof(strsrc);
    11     unsigned long buflen = sizeof(buf);
    12     unsigned long dstlen = sizeof(strdst);
    13     int i;
    14     FILE * fp;
    15 
    16     printf("源串:");
    17     for (i = 0; i<srclen; ++i)
    18     {
    19         printf("%c", strsrc[i]);
    20     }
    21     printf("原串长度为:%ld
    ", srclen);
    22 
    23     printf("字符串预计算长度为:%ld
    ", compressBound(srclen));
    24     //压缩
    25     compress(buf, &buflen, strsrc, srclen);
    26     printf("压缩后实际长度为:%ld
    ", buflen);
    27     //解压缩
    28     uncompress(strdst, &dstlen, buf, buflen);
    29 
    30     printf("目的串:");
    31     for (i = 0; i<dstlen; ++i)
    32     {
    33         printf("%c", strdst[i]);
    34     }
    35 
    36     return 0;
    37 }
    View Code

     例程用了一下别人写的,很简单的一个,就试运行一下。

  • 相关阅读:
    课堂作业
    Visual Studio Code for mac 设置中文
    git分支与主干合并操作
    git常用命令
    js事件冒泡和事件委托
    JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?
    常见的解决浏览器兼容性问题的方式有哪些
    vue问题大全
    浅析前端工程化
    前端中常见的数据结构小结
  • 原文地址:https://www.cnblogs.com/dilex/p/10747829.html
Copyright © 2020-2023  润新知