windows下编译libzip库
源码
编译libzip需要依赖zlib的库
zlib和libzip的git代码:
https://github.com/madler/zlib.git
https://github.com/nih-at/libzip.git
他们通过cmake进行编译,官方的readme和install知道我们的编译安装方式为:
mkdir build cd build cmake .. make make test make install
这里的方式大概是建一个build的目录,然后将cmake的结果放在build里,然后make编译。
Windows编译方式
在windows上进行编译,支持有两种方式:
- gnu环境
- window环境,转化成sln组织工程
gnu环境编译同上。
用vs进行编译
可以参考这个:
https://blog.csdn.net/weixin_33831196/article/details/90305366
中间有一部分
cmake .. -G"Visual Studio 15 2017" -DCMAKE_PREFIX_PATH="../zlib/build/install"
然后我改掉了之后,后面的cmake默认都变成了Visual Studio的方式了。。。
是用cmake -G 可以查看所有的编译
使用mingw进行编译
因为我是用mwing单独编译的zlib的库,所以有个问题我只编译zlib并没有安装(也不想安装)。整体的思路readme一样
按照步骤操作,cmake ..的时候碰到了ZLIB_INCLUDE_DIR找不到的问题。
看上下文 cmake .. 找到上一级的CMakeList.txt,而且build目录也有个CMakeList.txt。所以考虑是不是这里的CMakefile是从上一级来的
看到build里面有句
ZLIB_INCLUDE_DIR:PATH=ZLIB_INCLUDE_DIR-NOTFOUND
从上一级的CMakeList.txt找到这么两句
I
NCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) SET(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
暂时没看出来什么问题
把ZLIB_INCLUDE_DIR:PATH=改成对应目录在执行cmake的时候makefile就出来了(如果这个项找不到会自动生成,但生成过修改了却不会自动更新)。虽然有一堆别的Lib找不到,但不影响编译。
编译make
接着编译makefile。但是会找不到zlib的库的连接,把库的链接单独加到makefile里
但会提醒找不到一个头文件bcrypt.h。这个文件是一堆加密库的定义。因为vs环境过了,所以vs里的Windows API kit的头文件肯定有这个文件,一开还真的有。但是不能天真的复制过来。
最后还是把这个里的内容复制过去放在mingw的系统include里(甚至有怀疑是不是我mingw版本不够)
https://searchcode.com/codesearch/view/18140805/
但是接着编译还是会发现边报错,原因还是少几个定义。这时候从vs的开发包里的这个文件的定义直接复制过去吧。
然后关于这个就不报错了。
但是接着发现了另一个问题,提示没有random函数,查看了一下这个文件应该在stdlib.h这个头文件里。
然后查阅了mingw的stdlib.h发现并没有这个函数,但是有一个叫做rand和srand的函数。所以。。。把libzip源代码里的这两个函数名改一下就可以了。
再次编译,就发现编译成功,并生成了库。
但是使用make test会发现一堆fail,还没有找到啥毛病。
windows下编译libzip库相关推荐
- windows下编译skia库
windows下编译skia库 环境需求: 1.安装python2.7.x: python3系列可能又某些库不支持,所以推荐使用python2.7.15(最新). 如何检查是否安装python: 1. ...
- C++ Boost库:windows下编译Boost库
文章目录 1. 需要编译的boost库 2. 编译步骤 3. 库命名规则 4. VS配置库目录 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C ...
- Windows下编译openssl库
1.概述 OpenSSL是一个开放源代码的软件库包,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,所以应用程序可以使用这个 ...
- Windows下编译boost库
需要编译的boost库 以下的库必须单独编译: Boost.Chrono Boost.System Boost.Context Boost.ProgramOptions Boost.Filesyste ...
- windows下编译bootst
在Windows下编译boost库时,参考网上文章:https://blog.csdn.net/zengraoli/article/details/70187556时报错,原来是按照博主文章编译时,在 ...
- Windows下编译tensorflow-gpu教程
这两个也要看: https://zhuanlan.zhihu.com/p/29029860 https://zhuanlan.zhihu.com/p/34942873 Windows下编译tensor ...
- Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序
参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...
- 如何在Windows下编译OpenSSL?
OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- windows下编译支持https的curl
先编译好openssl,过程详见:<windows下编译openssl> 编译好zlib,过程详见<windows下编译zlib> 1. 下载curl 官网:https://c ...
最新文章
- Dropout 的前世与今生
- 独家 | 感悟注意力机制
- OCP12C题库,62数据库备份与恢复(admin,install and upgrade accelerated, backup and recovery workshop -62)(新增)
- void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)的一些理解
- lgg7深度详细参数_深度学习平均场理论第七讲:Batch Normalization会导致梯度爆炸?...
- php多进程有什么用,有关php多进程的用法举例
- CSS 布局实例系列(四)如何实现容器中每一行的子容器数量随着浏览器宽度的变化而变化?...
- 科大奥锐实验报告霍尔效应_大学物理实验报告系列之霍尔效应
- android gif转jpg格式文件,android使用多张图片合成gif文件
- 22.C++- 继承与组合,protected访问级别
- 知乎:全球发售2600万股销售股份 每股发售价51.8港元
- 【sklearn】有关数据归一化小结---fit_transform、fit、transform区别及其简单使用
- Redis核心知识点总结(一万五千字,请耐心读完)
- STM32学习——矩阵键盘
- 秦九韶算法如何应用到计算机,秦九韶算法
- Crumb -面包屑状的嵌套按钮
- 真实机下 ubuntu 18.04 安装anaconda+cuDNN+pytorch以及其版本选择(亲测非常实用)
- idea 配置web项目图片无法显示问题
- linux sata驱动加载硬盘顺序,linux安装前必备知识
- AcWing:Dijkstra
热门文章
- 通过MODBUS转ETHERNET IP网关将变送器接入AB PLC
- 教师资格证证件照要求来了!注意照片不要卡审
- Spring——七大核心模块
- 商品分类列表功能实现php,【图片】B2B2C系统如何实现商品分类功能【thinkphp吧】_百度贴吧...
- 网络怎么改变计算机,怎么更改电脑上网IP地址
- CDISC的ADaMIG (V1.2) 中英文对照【4】_第四章(下)实施问题,标准解决方案和示例
- 博达站群链接使用注意事项
- CCR炒币机器人:熊市时,你该做些什么?
- 鲸会务现场提问上线,大屏互动功能更全面
- IT计算机行业程序员职业发展路线图(完整版+珍藏版)