2

我正在尝试使用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)

该代码片段不起作用。

4

1 回答 1

5

CheckLibraryExists模块仅适用于 C 符号,不适用于 C++。就我个人而言,我只会使用find_libraryfind_path查找库和包含路径。如果库不包含正确的符号,用户将在链接过程中很快注意到......

由于 yaml-cpp 安装了一个 pkg-config 文件,因此您也可以使用该FindPkgConfig模块。但是,由于 yaml-cpp 本身是使用 CMake 构建的,因此您应该鼓励他们实际安装yaml-cpp-config.cmake文件。有关更多信息,请参见本教程

于 2012-04-18T13:28:40.933 回答