【问题标题】:How can I enable _GLIBCXX_USE_C99 on Solaris 8 SPARC?如何在 Solaris 8 SPARC 上启用 _GLIBCXX_USE_C99?
【发布时间】:2012-04-30 22:43:00
【问题描述】:

我已经为 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 还是这个平台太旧了?我已经不在我的元素中了,所以任何关于让它工作的指导都会很棒。

【问题讨论】:

  • Solaris 8 于 2000 年 2 月发布,现已结束其支持生命周期。对于今天的任何事情来说,它都太旧了。

标签: c++ boost g++ solaris


【解决方案1】:

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

来自Sun Studio 12 User's Guide

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-06
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多