首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建tdlib示例时出错

创建tdlib示例时出错
EN

Stack Overflow用户
提问于 2018-03-27 11:10:11
回答 1查看 962关注 0票数 0

我正试图在自述文件(https://github.com/tdlib/td/tree/master/example/java)之后为td库构建一个java示例,下面是mistackes。请告诉我怎么修?

代码语言:javascript
复制
C:\Users\irina\td\jnibuild>cmake -DCMAKE_BUILD_TYPE=Debug -DTD_ENABLE_JNI=ON -DCMAKE_INSTALL_PREFIX:PATH=../example/java/td ..
-- Could NOT find ccache
-- Found OpenSSL: C:/OpenSSL-Win32/include optimized;C:/OpenSSL-Win32/lib/VC/ssleay32MD.lib;debug;C:/OpenSSL-Win32/lib/VC/ssleay32MDd.lib;optimized;C:/OpenSSL-Win32/lib/VC/libeay32MD.lib;debug;C:/OpenSSL-Win32/lib/VC/libeay32MDd.lib
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
CMake Warning at CMakeLists.txt:256 (message):
  Not found zlib: skip TDLib, tdactor, tdnet, tddb


CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
ZLIB_LIBRARY
    linked by target "tdutils" in directory C:/Users/irina/td/tdutils

-- Configuring incomplete, errors occurred!
See also "C:/Users/irina/td/jnibuild/CMakeFiles/CMakeOutput.log".
See also "C:/Users/irina/td/jnibuild/CMakeFiles/CMakeError.log".
EN

回答 1

Stack Overflow用户

发布于 2018-03-27 13:36:13

ZLIB for WindowsGnuWin32项目的一部分(我不确定它是否允许提供SO上的链接)。正如我所看到的,CMakeLists.txt使用find_package查找ZLIB库:

代码语言:javascript
复制
if (NOT ZLIB_FOUND)
  find_package(ZLIB)
endif()
if (NOT ZLIB_FOUND)
  message(WARNING "Not found zlib: skip TDLib, tdactor, tdnet, tddb")
  return()
endif()

find_package命令的工作原理在正式文件中得到了很好的描述

该命令有两种搜索包的模式:“Module”模式和“Config”模式。当使用上面减少的签名调用命令时,可以使用模块模式。CMake在CMAKE_MODULE_PATH中搜索一个名为Find.cmake的文件,然后是CMake安装。如果找到该文件,则由CMake读取和处理该文件。它负责查找包,检查版本,并生成任何所需的消息。许多find-模块为版本控制提供了有限的或不支持;请查看模块文档。如果没有找到任何模块,并且没有给出MODULE选项,则命令进入Config模式。

我已经在我的Windows机器上看过FindZLIB.cmake了。该模块使用以下路径:ZLIB_ROOT和以下注册表项:

"HKEY_LOCAL_MACHINE\SOFTWARE\GnuWin32\Zlib;InstallPath“"$ENV{PROGRAMFILES}/zlib

因此,正如我所理解的,如果您使用安装程序安装GnuWin32,那么HKLM键将被写入注册表,CMake将能够找到ZLIB的路径。如果希望仅使用zip存档,则在运行ZLIB_ROOT时必须正确指定CMake参数:

代码语言:javascript
复制
cmake -DZLIB_ROOT=<PATH-to-your-unpacked-zlib> -D.....
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49511360

复制
相关文章

相似问题

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