Cmake找不到带有pkg_search_module的“openssl”“libcrypto”[重复]

Posted

技术标签:

【中文标题】Cmake找不到带有pkg_search_module的“openssl”“libcrypto”[重复]【英文标题】:Cmake can't find "openssl" "libcrypto" with pkg_search_module [duplicate] 【发布时间】: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 找不到。 【参考方案1】:

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

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

我希望这会有所帮助。

【讨论】:

以上是关于Cmake找不到带有pkg_search_module的“openssl”“libcrypto”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

QtCreator 找不到 cmake

CMake 找不到 GLEW

CMake 找不到诅咒

CMake 找不到 Ninja

如果更改了 CMAKE_RUNTIME_OUTPUT_DIRECTORY,CMake 找不到测试

cmake找不到静态库