【问题标题】:Cmake can't find "openssl" "libcrypto" with pkg_search_module [duplicate]Cmake找不到带有pkg_search_module的“openssl”“libcrypto”[重复]
【发布时间】:2017-12-25 06:17:03
【问题描述】:

我正在构建一个项目,在 CMakeLists.txt 中有一些 pkg_search_module 语句,包括两个用于 openssl 和 libcrypto 的语句,它们会在构建过程中引发错误。

pkg_search_module(LIBXML2 libxml-2.0 REQUIRED)
include_directories(${LIBXML2_INCLUDE_DIRS})

pkg_search_module(OPENSSL openssl REQUIRED)
include_directories(${OPENSSL_INCLUDE_DIRS})

pkg_search_module(CONFIG libconfig REQUIRED)
include_directories(${CONFIG_INCLUDE_DIRS})

pkg_search_module(CRYPTO libcrypto REQUIRED)
include_directories(${CRYPTO_INCLUDE_DIRS})

我使用 apt-get 安装了这些软件包,据我了解,如果 CMake 找不到库的位置,可以将其提供给它,但我不确定如何找到它们。

我在终端上得到这个输出:

CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:578 (message):
   None of the required 'openssl' found
Call Stack (most recent call first):
  /home/openair3/openair-cn/build/CMakeLists.txt:814 (pkg_search_module)
  CMakeLists.txt:41 (include)


CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:578 (message):
  None of the required 'libcrypto' found
Call Stack (most recent call first):
  /home/openair3/openair-cn/build/CMakeLists.txt:820 (pkg_search_module)
  CMakeLists.txt:41 (include)

我在虚拟机上使用 Ubuntu 16.04。

感谢您的建议。

【问题讨论】:

  • 查看使用此命令安装软件包的正确位置:dpkg -L <packagename>(如果所有这些软件包都是使用 apt-get 安装的)。
  • "dpkg -L openssl" 返回几个位置,但是 "dpkg -L libcrypto" 返回 dpkg-query: package 'libcrypto' 没有安装。我应该将 dpkg 的哪些结果传递给 CMake 以满足 OPENSSL_INCLUDE_DIRS?如何安装 libcrypto? apt-get 找不到。

标签: c++ cmake openssl libcrypto


【解决方案1】:

使用dpkg -L <packagename> 查看您的软件包的安装位置。

要安装 libcrypto,请使用 sudo apt-get install libssl-dev

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 2018-10-17
    • 2020-10-17
    • 2017-09-25
    • 1970-01-01
    相关资源
    最近更新 更多