使用CMAKE如何使用CHECK_LIBRARY_EXISTS检查C ++库?

时间:2012-04-18 13:13:29

标签: c++ cmake

我正在尝试使用cmake的功能:

CHECK_LIBRARY_EXISTS(library function location variable) 

如何检查C ++库是否可用?

CHECK_LIBRARY_EXISTS(yaml-cpp "YAML::Token" ${YAML-CPP_PATHS} HAVE_YAML-CPP)
IF(HAVE_YAML-CPP)
    MESSAGE(STATUS "YAML-CPP libraries founded: OK")
ENDIF(HAVE_YAML-CPP)

IF(NOT HAVE_YAML-CPP)
    MESSAGE(FATAL_ERROR "ERROR: unable to link YAML::Token")
ENDIF(NOT HAVE_YAML-CPP)

该代码片段不起作用。

1 个答案:

答案 0 :(得分:5)

CheckLibraryExists模块仅适用于C符号,而不适用于C ++。就个人而言,我只想使用find_libraryfind_path来查找库并包含路径。如果库不包含正确的符号,用户将在链接期间尽快注意到...

由于yaml-cpp安装了pkg-config文件,因此您也可以使用FindPkgConfig模块。但是,由于yaml-cpp本身是使用CMake构建的,因此您应该鼓励它们实际安装yaml-cpp-config.cmake文件。参见例如这个tutorial了解更多信息。