我已经为Solaris 8 sparc构建了gcc 4.6.1。我正在编译一些使用boost::lexical_cast(boost 1.48)的代码,但是出现了以下错误:
boost/math/special_functions/sign.hpp: In function 'int boost::math::detail::signbit_impl(T, const boost::math::detail::native_tag&)'
error: 'signbit' is not a member of 'std'
(fpclassify、isfinite、isnormal、isinf、isnan也存在类似的错误)
我查看了cmath头文件,发现它有条件地定义了std::signbit,具体取决于_GLIBCXX_USE_C99_MATH是否被定义。我运行了cpp -dM命令,发现_GLIBCXX_USE_C99_MATH没有被定义。有没有一种方法可以启用C99支持?我需要重新构建libc吗,还是这个平台太旧了?由于我不是专业人士,如果能提供任何关于如何解决此问题的指导,我将不胜感激。