2017-07-19 140 views
0

我正在构建一个项目,并且在CMakeLists.txt中有几个pkg_search_module语句,其中包括两个用于在构建过程中抛出错误的openssl和libcrypto。Cmake使用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和方式我知道这是可能给C进行库的位置,如果它不能找到它,但我不知道如何找到它们。

我得到终端上的输出:

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虚拟机上。

我很感谢您的建议。

+0

查看软件包安装的正确位置:'dpkg -L '(如果所有软件都安装在apt-get中)。 – Dalton

+0

“dpkg -L openssl”返回一些位置,但是“dpkg -L libcrypto”返回dpkg-query:未安装软件包'libcrypto'。 dpkg的哪个结果应该传递给CMake以满足OPENSSL_INCLUDE_DIRS? 我该如何安装libcrypto? Apt-get不会找到它。 –

回答

0

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

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

我希望这会有所帮助。