1

cmake と MSVC2017 を使用して、Windows 10 で libzip-1.3.0 をコンパイルしようとしています。

その最新の 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 をコンパイルできますか?

4

2 に答える 2

1

結局のところ、私は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"
于 2017-10-30T02:04:08.723 に答える