【问题标题】:CMake: Set zlib pathCMake:设置zlib路径
【发布时间】:2017-10-02 17:30:07
【问题描述】:

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

mkdir build
cd build
cmake -DZLIB_LIBRARY=../../../zlib-1.2.11 -DZLIB_INCLUDE_DIR=../../../zlib-1.2.11 ..

但是,这不起作用。我收到以下错误:

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。

我还尝试了以下方法:

mkdir build
cd build
cmake .. -DZLIB_LIBRARY=../../../zlib-1.2.11 -DZLIB_INCLUDE_DIR=../../../zlib-1.2.11

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

CMake Warning:
Manually-specified variables were not used by the project:
ZLIB_INCLUDE_DIR
ZLIB_LIBRARY

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

我在这里没有想法。我做错了什么?

【问题讨论】:

  • Documentation 建议使用 ZLIB_ROOT 作为 CMake 关于 zlib 位置的提示。或者,您 may use CMAKE_PREFIX_PATH 用于相同目的。
  • 设置ZLIB_ROOT 产生以下错误:CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:138 (message): could NOT查找 ZLIB(缺少:ZLIB_LIBRARY)(找到版本“1.2.11”)
  • 该错误意味着它可以找到标题,但不能找到库本身。

标签: cmake


【解决方案1】:

要回答我自己的问题,问题是使用 ZLIB_LIBRARYZLIB_INCLUDE_DIR 的相对路径。使用绝对路径时,它工作得很好。此外,ZLIB_LIBRARY 需要指向库本身。这是我的最终构建行:

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 ..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-29
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    相关资源
    最近更新 更多