web-dev-qa-db-ja.com

cmakeがzlibインクルードパスを指すようにする方法

または、任意のインクルードディレクトリ/ライブラリ。

私はcmake guiツールを使用してそれを実行します。通常、GUIは見つけられないインクルードまたはライブラリを強調表示し、開いたダイアログを開いてパスを設定しますが、このcmake cofigではそうしません。 guiツールの出力に赤いテキストがあるので、

CMake Error at C:/Program Files/CMake/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:136 (message):
  Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.0/Modules/FindPackageHandleStandardArgs.cmake:343 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.0/Modules/FindZLIB.cmake:101 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  src/CMakeLists.txt:7 (find_package)

それでもGUIを使用して、cmakeをzlib include dirにポイントするにはどうすればよいですか?

15
graham

最初に、ZLibがどこかにインストールされていると想定します。CMakeが見つけたため、ZLibは標準以外の場所にあると思います。その場合は、CMake-guiで場所を設定できます。 FindZLIB.cmakeファイルには次の行「mark_as_advanced(ZLIB_LIBRARY ZLIB_INCLUDE_DIR)」があるため、最初に上部近くの「詳細設定」チェックボックスをクリックする必要があります。

これで、ZLIB_LIBRARY ZLIB_INCLUDE_DIRオプションを表示して、正しいパスを設定できるはずです。

16
StAlphonzo

簡単な解決策:apt-get install zlib1g-dev

16
radu

docs によると、将来のGoogle社員向け:

インクルーダーは、ZLIB_ROOTをzlibインストールルートに設定して、このモジュールに探す場所を指示することができます。

4
Elhanan Ilani

Elhanan Ilaniの回答(私のような初心者向け)に追加するには、これをCMakeLists.txtファイルの上部近くで宣言する必要があります。例えば:

set(ZLIB_ROOT /home/foo/zlib-1.2.11/)
set(CURL_ROOT /home/foo/anaconda3/)
0
Josh

私の場合、ZLIB_ROOT、ZLIB_LIBRARYを設定します

c:\zlib - include
        - lib
0
sailfish009