Autoscan autoconf生成的配置脚本无法在c ++代码中找到cmath函数

时间:2012-01-10 16:16:21

标签: c++ g++ autotools autoconf

我很困惑为什么autoscan和autoconf生成的配置脚本告诉我它在包含pow头文件的c ++代码中找不到函数sqrtcmath 。我正在呼叫AC_CHECK_FUNCS([pow sqrt])(返回“否”答案)。代码编译并运行得很好,没有任何错误。

C ++代码:

#include <cmath>
...
x = sqrt(y);

configure.ac:

AC_CHECK_FUNCS([pow sqrt])

没有库检查,但我不需要在cmath的命令行上链接-lm。我不确定这是否是持有量。看起来相当简单,所以我很困惑为什么它不起作用。仅供参考,g ++ 4.1.2,autoconf 2.59,RedHat EL 5.3。

1 个答案:

答案 0 :(得分:3)

由于您正在编译C ++代码,因此您应该切换autoconf以使用C ++运行其测试,例如:添加

AC_LANG(C++)
检查前

。这将使用C ++运行测试,但仍然只检查相应C函数的存在。请参阅caveats here