zlib-1.2.11 "слишком стар" - для компиляции libzip-1.3.0 требуется 1.1.2

Я пытаюсь скомпилировать libzip-1.3.0 на Windows 10, используя cmake и MSVC2017.

Я успешно скомпилировал этот последний zlib (1.2.11), но когда я пытаюсь скомпилировать libzip, мне говорят, что: ZLIB version too old, please install at least v1.1.2

Мои определения версии zlib.h:

#define ZLIB_VERSION "1.2.11"
#define ZLIB_VERNUM 0x12b0
#define ZLIB_VER_MAJOR 1
#define ZLIB_VER_MINOR 2
#define ZLIB_VER_REVISION 11
#define ZLIB_VER_SUBREVISION 0

Я запускаю команду cmake:

cmake .. -G"Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX="C:\devel\lib\libzip" -DZLIB_LIBRARY:FILEPATH="C:\devel\lib\zlib\lib" -DZLIB_INCLUDE_DIR:PATH="C:\devel\lib\zlib"

Я нашел в интернете старую ветку, где у кого-то была похожая проблема, но когда я смотрю на соответствующую часть CMakeLists.txt файл, похоже, теперь это правильно:

FIND_PACKAGE(ZLIB REQUIRED)
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
set(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
IF(ZLIB_VERSION_STRING VERSION_LESS "1.1.2")
  MESSAGE(FATAL_ERROR "-- ZLIB version too old, please install at least v1.1.2")
ENDIF(ZLIB_VERSION_STRING VERSION_LESS "1.1.2")

Итак, почему zlib 1.2.11 "старше" 1.1.2 и как мне обойти это и скомпилировать libzip?

2 ответа

Оказывается, я заставлял cmake искать не в том месте - но вместо того, чтобы сообщать о том, что zlib не был обнаружен, он создавал впечатление, будто вместо него была старая версия.

Команда cmake должна использовать CMAKE_PREFIX_PATH и укажите на корень библиотеки zlib (как показано ниже):

cmake .. -G"Visual Studio 15 2017 Win64" -DCMAKE_PREFIX_PATH="C:\devel\lib\zlib" -DCMAKE_INSTALL_PREFIX="C:\devel\lib\lipzip"

Причиной этой проблемы может быть то, что вы указали неправильный ZLIB_INCLUDE_DIR, подтвердите zlib.h в этом файловом каталоге и откройте zlib.h, чтобы увидеть, больше ли номер версии следующей строки, чем 1.1.2.

---zlib.h line number: 40---
#define ZLIB_VERSION "1.2.11"
#define ZLIB_VERNUM 0x12b0
#define ZLIB_VER_MAJOR 1
#define ZLIB_VER_MINOR 2
#define ZLIB_VER_REVISION 11
#define ZLIB_VER_SUBREVISION 0
Другие вопросы по тегам