我正在编写cmake构建脚本,我想检查用户是否安装了libbdd库(由sudo apt-get install libbdd-dev
安装)。我尝试使用以下find_package(libbdd)
,但即使安装了lib也找不到它。如何正确检查是否安装了lib?
答案 0 :(得分:1)
find_package
可以使用:
有人提供findXXX.cmake
脚本,搜索库位于默认位置。
随XXXConfig.cmake
脚本一起提供的库。
否则,您需要采用其他方法。
例如,如果库支持pkg-config
实用程序,您可以使用CMake模块PkgConfig进行检测。
如果您只想检查,是否将库安装到默认位置,您可以检查是否可能包含其签名头文件进入该计划。最简单的方法是使用CHECK_INCLUDE_FILE:
# Include mModule, where the macro is declared.
include(CheckIncludeFile)
# Check that header file is accessible.
CHECK_INCLUDE_FILE("bdd.h" # "Signature" header for the library libbdd.
BDD_INSTALLED # Variable to store result
)
if(NOT BDD_INSTALLED)
# Remove FALSE value from the cache, so next run
# the include file will be rechecked.
#
# Without removing, CHECK_INCLUDE_FILE will check nothing at next run.
unset(BDD_INSTALLED CACHE)
message(SEND_ERROR "Unable to detect 'bdd' library. Install libbdd-dev and rerun cmake.")
endif(NOT BDD_INSTALLED)
# Assume that libbdd is installed.