首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMake:设置zlib路径

CMake:设置zlib路径
EN

Stack Overflow用户
提问于 2017-10-02 17:30:07
回答 1查看 8.8K关注 0票数 6

我试图在Windows上编译libzip,使用CMake生成makefile。Libzip需要zlib,所以我执行以下操作:

代码语言:javascript
复制
mkdir build
cd build
cmake -DZLIB_LIBRARY=../../../zlib-1.2.11 -DZLIB_INCLUDE_DIR=../../../zlib-1.2.11 ..

然而,这是行不通的。我得到以下错误:

代码语言:javascript
复制
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

为什么会这样呢?我已经将ZLIB_LIBRARYZLIB_INCLUDE_DIR定义为指向最新的zlib。

我还尝试了以下几种方法:

代码语言:javascript
复制
mkdir build
cd build
cmake .. -DZLIB_LIBRARY=../../../zlib-1.2.11 -DZLIB_INCLUDE_DIR=../../../zlib-1.2.11

当我像这样运行CMake时,我会收到以下两个警告:

代码语言:javascript
复制
CMake Warning:
Manually-specified variables were not used by the project:
ZLIB_INCLUDE_DIR
ZLIB_LIBRARY

然而,与第一种方法相比,构建文件现在被写入我的构建目录。然而,在运行nmake时,似乎只构建了zlib。libzip本身根本不是构建的。

我没什么主意了。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-03 16:10:04

要回答我自己的问题,使用ZLIB_LIBRARYZLIB_INCLUDE_DIR的相对路径是问题所在。当使用绝对路径时,它工作得很好。此外,ZLIB_LIBRARY需要指向库本身。下面是我的最后一条构建线,它可以工作:

代码语言:javascript
复制
cmake -DZLIB_INCLUDE_DIR=d:\mystuff\zlib-1.2.11 -DZLIB_LIBRARY=d:\mystuff\zlib-1.2.11\build\zlibstatic.lib -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release ..
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46530617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档