检查函数存在¶
检查是否可以链接 C 函数
- check_function_exists¶
check_function_exists(<function> <variable>)
检查
<function>是否由系统上的库提供,并将结果存储在<variable>中,它将被创建为内部缓存变量。
在调用此宏以修改检查运行方式之前,可以设置以下变量:
CMAKE_REQUIRED_FLAGS编译命令行标志的字符串。
CMAKE_REQUIRED_DEFINITIONSa ;-list 要定义的宏 (-DFOO=bar)。
CMAKE_REQUIRED_INCLUDESa ;-list 要传递给编译器的标头搜索路径。
CMAKE_REQUIRED_LINK_OPTIONS在 3.14 版本加入: a ;-list 添加到链接命令的选项。
CMAKE_REQUIRED_LIBRARIESa ;-list 要添加到链接命令的库。请参阅政策:policy:CMP0075。
CMAKE_REQUIRED_QUIET在 3.1 版本加入: 在没有消息的情况下安静地执行。
备注
出于以下原因,更喜欢使用 CheckSymbolExists 而不是此模块:
check_function_exists()无法检测到标头中内联或指定为宏的函数。check_function_exists()无法检测到 32 位版本的 Win32 API 中的任何内容,因为调用约定不匹配。check_function_exists()只验证链接,不验证函数是否在系统头文件中声明。