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

Rob*_*oni 2 c++ cmake

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

CHECK_LIBRARY_EXISTS(library function location variable) 
Run Code Online (Sandbox Code Playgroud)

如何检查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)
Run Code Online (Sandbox Code Playgroud)

该代码片段不起作用.

Mic*_*ild 5

CheckLibraryExists模块仅适用于C符号,而不适用于C++.就个人而言,我只会使用find_libraryfind_path找到库并包含路径.如果库中没有包含正确的符号,则用户在链接期间会很快注意到...

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