我很困惑为什么autoscan和autoconf生成的配置脚本告诉我它在包含pow
头文件的c ++代码中找不到函数sqrt
和cmath
。我正在呼叫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。
答案 0 :(得分:3)
由于您正在编译C ++代码,因此您应该切换autoconf以使用C ++运行其测试,例如:添加
AC_LANG(C++)
检查前。这将使用C ++运行测试,但仍然只检查相应C函数的存在。请参阅caveats here。