如何在 Solaris 8 SPARC 上启用_GLIBCXX_USE_C99
How can I enable _GLIBCXX_USE_C99 on Solaris 8 SPARC?
我已经为 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还是这个平台太旧了? 我已经超出了我的元素,所以任何关于让它工作的指导都会很棒。
您的平台 C 库可能太旧,无法支持 C99 FP 库的添加。
来自 Sun Studio 12 用户指南:
注意 - 尽管编译器默认支持列出的 C99 的功能 下面,Solaris 软件在
/usr/include
中提供的标准标头 尚未符合 1999 年 ISO/IEC C 标准。如果错误消息是 遇到,尝试使用-xc99=none
获取 1990 ISO/IEC C 标准 这些标头的行为。
相关文章:
- 编译时未启用intel oneApi CUDA支持
- OpenGL在启用深度测试时不会丢弃我的碎片
- Visual C++GC接口如何启用它以及要包含哪个库
- 如何在自定义类中启用'auto loops'?
- 根据某个函数是否存在启用模板
- 视觉工作室 2017;启用 /permissive 时,类型 "const wchar_t *" 的参数与类型 "PWSTR" 的参数不兼容
- 启用从"vector<const T>&"到"const vector&"的隐式转换<T>
- glibcxx STL 在实现 std::valarray::sum() 时是否不正确?
- C++ win32 如何使密码字段可选并启用复制和粘贴?
- 在 Eclipse 上启用 C++17 以使用 'std::byte'
- 当 noexcept 函数尝试在 gcc 或 clang 中调用非 noexcept 函数时启用警告
- 如何为一段代码启用 -permissive
- 是否可以/希望创建不可复制的共享指针模拟(以启用weak_ptr跟踪/借用类型语义)?
- 在 GCC 中启用"differing levels of indirection"警告/错误
- 使用 Doxygen 记录枚举类值,而不启用EXTRACT_ALL
- '_HAS_CXX17'宏是否可用于自定义项目标头以启用C++17 语言集功能?
- 如何启用转换模板参数 T 以常量 T?
- 在使用 gSoap 链接多个 SOAP 服务时启用保持活动状态
- 如何启用标准::实验::atomic_shared_pointer
- 如何启用友元类的友元功能直接在C++中访问其私有成员