win10下用cmake编译zlib并验证

news2024/11/16 7:25:05

需要的工具:

  •         zlib, 下载路径:zlib Home Site
  •         vs2017或其他版本
  •         cmake

1. 下载zlib,创建build文件夹。

下载地址:zlib Home Site

这里下载到d:/build-libs文件夹下,得到zlib-1.3文件夹。 在zlib-1.3文件夹之外,创建build文件夹,如下

2. 安装cmake,用cmake-gui配置编译路径

如何安装cmake请参考其他教程,此处不再赘述。

打开cmake-gui,配置编译zlib的输入和输出路径。

配置输入路径:点击"Browse Source",输入zlib的源码路径,这里是:D:/build-libs/zlib/zlib-1.3, 配置输出路径:点击“Browse Build” ,输入zlib的build文件夹,这里是D:/build-libs/zlib/build。如下图所示。

然后按下面的标注,依次点击:configure, generate。不在这里执行open project,因为这里执行open project 没有添加管理员权限。

(1)点击configure按钮

点击configure后会弹出下面对话框

 我的系统里装的是vs2017,所以我在选择generator时选择的“Visual Studio 15 2017”。选择完毕后,点击Finish, 弹出下图窗口。标红的区域不用管,不是错误。 如果看着标红不爽,可以再次执行一次configure,这时就不红了。

 

(2)点击generate按钮。

 下面对话框会输出“Generating done (0.1s)”。

此时,在创建的D:/build-libs/zlib/build文件夹下会产生zlib.sln文件。

3. “以管理员身份”运行VS2017,生成动态库、静态库,并安装zlib。

首先,以管理员身份打开VS2017.

 然后,文件--》打开--》项目/解决方案,打开D:/build-libs/zlib/build文件夹下的zlib.sln解决方案,如下。

(1)Release 模式下,编译 "ALL BUILD "

在选项栏,把debug换成release, 在右侧“ALL BUILD”上右键--》生成。

此时,可以在build文件夹下,看到一个新的Release文件夹

里面有编译好的动态链接库

(2)Debug模式下,编译 "ALL BUILD " .

此时会在build目录下,生成一个Debug文件夹,里面也有lib和dll文件。

(3)Release模式下,编译“INSTALL”

在“INSTALL”上右键--》生成。该步骤实现了把zlib安装在windows系统上,在C:\Program Files (x86)文件夹下创建了一个zlib文件夹,里面内容如下:

该文件夹的生成,标志着zlib的安装成功。

说明:步骤(3)可以单独执行,不必在(1)(2)之后执行。(1)(2)不执行也可以。 

 

如何测试:后面再补充。 

参考: windows10下编译zlib库_windows 编译zlib_妙为的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1141205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android13源码添加系统服务

本文基于Android 13的framework层添加系统接口,为应用层提供读写函数、以及执行命令! 添加接口 frameworks/base/core/java/android/app/IDevices.aidl package android.app; interface IDevices {//读取文件String readFile(String path);//写入文件void writeF…

hdlbits系列verilog解答(模块按位置)-21

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 此问题类似于上一个(模块)。您将获得一个名为的 mod_a 模块,该模块按此顺序具有 2 个输出和 4 个输入。您必须按位置将 6 个端口按该顺序连接到顶级模块的端口 out1 、 out2…

Mac-postman存储文件目录

今天postman弹窗要求登录账号才可访问之前的API文档数据。 但是这postman的账号又是前同事的账号,我没有他的账号和密码啊。 登录了我自己的postman账号后,所有的api文档都不见了....我服了。 首先去屏幕左上角---> 前往 --->个人 然后键盘按显…

【算法练习Day30】无重叠区间 划分字母区间合并区间

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 无重叠区间划分字母区间合并…

力扣在线OJ——栈和队列

目录 🍁一、用两个队列实现栈 🌕(一)、题目(力扣链接:用队列实现栈 ) 🌕(二)、注意 🌕(三)、解答 ⭐️1.注意事项 ⭐…

Java练习题2021-2

"某地大数据防疫平台记录了往来的所有防疫相关信息,包括 本地或外地人员、健康码颜色、接种疫苗情况、最近一次核酸结果、最近一次核酸检测时间等。 该地某区域对于进入人员的要求为: 如果是本地人员,需要绿码和疫苗完全接种方可进入&am…

单位建数字档案室的意义和作用

单位建立数字档案室的意义和作用包括: 1.提高档案管理效率。数字档案室可以高效地收集、整理和存储电子文档,通过数字化处理,文档的查找和检索速度大幅提升。 2.降低管理成本。数字档案室可以通过节约空间和人力成本,降低管理成本…

ubuntu扩大运行内存, 防止编译卡死

首先查看交换分区大小 grep SwapTotal /proc/meminfo 1、关闭交换空间 sudo swapoff -a 2、扩充交换空间大小,count64就是64G 1G x 64 sudo dd if/dev/zero of/swapfile bs1G count64 3、设置权限 sudo chmod 600 /swapfile 4、指定交换空间对应的设备文件 …

系列十四、Spring如何处理线程安全问题

一、线程安全问题出现的原因 Spring中出现线程安全的原因是,单实例bean中存在成员变量,并且有对这个bean进行读写的操作,因此出现了线程安全的问题。 二、案例代码 2.1、MySpringConfig /*** Author : 一叶浮萍归大海* Date: 2023/10/24 1…

假脱机技术(SPOOLing技术)

文章目录 1.什么是脱机技术1.脱机技术解决的问题 2.假脱机技术的实现原理1.输入井和输出井2.输入进程和输出进程3,输入缓冲区和输出缓冲区 3.共享打印机的原理分析1.把独占式的打印机改造成共享设备 1.什么是脱机技术 脱机:脱离主机的控制进行的输入输出操作。 批处…

【1++的Linux】之进程间通信(共享内存)

👍作者主页:进击的1 🤩 专栏链接:【1的Linux】 我们在前面的文章中提到过,进程间的通信本质都是先看到同一块资源,然后通过这同一块资源进行通信,并且是单向的通信,只能一端发&#…

可视化 | (四)可视化降维

文章目录 📚降维的重要性📚MDS、PCA🐇MDS🐇PCA 📚SNE🐇总述🐇SNE🐇Symmetric-SNE🐇T-SNE 📚降维的重要性 降维在数据分析和可视化领域中扮演着重要的角色。当…

19、Python -- 关键字参数 与 参数默认值,参数收集 与 逆向参数收集

目录 关键字参数位置参数:关键字参数位置参数和关键字参数的混合使用关键字参数注意点 参数默认值使用参数默认值 普通参数收集(*xxx)注意点 关键字参数收集(**xxx)逆向参数收集注意点: dict(字典)的逆向参…

J2EE项目部署与发布(Windows版本)

目录 一.会议OA单体项目Windows部署 1.实操 二.spa前后端分离项目Windows部署 1.部署后端 2.部署前端 配置node.js 3.从实施的角度 4.从开发的角度 ​编辑 一.会议OA单体项目Windows部署 我们从实施的角度来看,拿到项目之后一定要问开发人员提供数据库脚…

SpringCloud复习:(8)Zuul内置过滤器

过滤器的执行顺序:根据filterOrder方法的返回值,返回值(包含负数)越小,越早执行 。 FilterProcessor类中会调用filter的runFilter方法 ZuulFilter中的runFilter方法会调用run方法:

在ffmpeg中,网络视频流h264为什么默认的转为YUV而不是其他格式

在做网络视频的时候,有些视频的编程概念,早点知道,早点弄清楚会少走很多的弯路。对应视频的转码,传输,一开始如果直接跟着代码跑的话,很容易觉得自己都明白了,但是为什么这样做,好像…

使用WebStorm创建和配置TypeScript项目

创建 这里我用的是WebStorm 2019.2.2版本 首先,创建一个空项目 File -> New -> Project->Empty Project生成配置文件 自动配置: 打开终端输入tsc --init,即可自动生成tsconfig.json文件 手动配置: 在项目根目录下新建一…

第四章 文件管理 八、文件保护

目录 一、口令保护 1、定义: 2、优点: 3、缺点: 二、加密保护 1、定义: 2、例子: 2、优点: 3、缺点: 三、访问控制 1、定义: 2、精简的访问控制表: (1)定义&a…

海南海口大型钢结构件3D扫描全尺寸三维测量平面度平行度检测-CASAIM中科广电

高精度三维扫描技术已经在大型工件制造领域发挥着重要作用,特别是在质量检测环节,高效、高精度,可以轻松实现全尺寸三维测量。本期,CASAIM要分享的应用是在大型钢结构件的关键部位尺寸及形位公差检测。 钢结构件,是将…

38 深度学习(二):tensorflow基础介绍

文章目录 tensorflow基础介绍基础张量自定义损失函数自定义模型和激活函数图函数(略)自动求导机制自定义fit tensorflow基础介绍 基础张量 import tensorflow as tf import numpy as np import pandas as pd# constant是常量张量 不能进行再次assign改…