如何在Solaris 8 SPARC上启用_GLIBCXX_USE_C99?

时间:2012-04-30 22:43:01

标签: c++ boost g++ solaris

我为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标头,它根据是否定义了_GLIBCXX_USE_C99_MATH有条件地定义了std :: signbit。我运行了cpp -dM,我发现没有定义_GLIBCXX_USE_C99_MATH。有没有办法启用C99支持?我是否必须重建libc或者这个平台太旧了?我不在我的元素中,所以任何关于这项工作的指导都会很棒。

1 个答案:

答案 0 :(得分:2)

您的平台C库可能太旧,无法支持添加C99 FP库。

来自Sun Studio 12 User's Guide

  

注意 - 虽然编译器默认支持列出的C99功能   下面是/usr/include中Solaris软件提供的标准头文件   尚未符合1999 ISO / IEC C标准。如果有错误消息   遇到,尝试使用-xc99=none获得1990 ISO / IEC C标准   这些标题的行为。