CMake学习(四)——自检

本文介绍如何在CMake项目中添加自检功能,检查目标平台是否支持log和exp函数。通过调用CheckFunctionExists模块,确定函数可用性,并在配置文件中定义相关宏。最终根据检测结果在mysqrt函数中选择使用这些函数计算平方根。
摘要由CSDN通过智能技术生成

这一篇博客我们将在之前的项目中添加一些代码实现简单的自检功能。代码的描述是这样的,依据目标平台是否有log和exp函数(当然,几乎所有的平台都有这两个函数,当时我们假定我们的项目不一定有),如果有的话,在mysqrt函数中应这两个函数计算平方根。

首先,我们需要检测在项目中这两个函数是否可用,通过在顶层CMakeLists.txt文件中调用CheckFunctionExists模块来实现,在CMakeLists.txt中添加如下代码:

# does this system provide the log and exp functions?
include (CheckFunctionExists)
check_function_exists (log HAVE_LOG)
check_function_exists (exp HAVE_EXP)

check_function_exists (<function> <variable>):用于检测是否可以链接C函数,检测函数系统的库是否提供函数<function>,并且将结果存在变量<variable>中。检测的结果并不取决于是否有头文件声明了这个函数,只取决于在链接的时候能否找到它。

接着我们修改TutorialConfig.h.in来定义HAVE_LOG和HAVE_EXP的值(如果在平台时可以找到这些函数),TutorialConfig.h.in中添加的内容如下:

// does the pla
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值