【问题标题】:How to use boost::multiprecision::float128 in with Xcode如何在 Xcode 中使用 boost::multiprecision::float128
【发布时间】:2019-09-02 10:05:29
【问题描述】:

我正在尝试在 xCode 项目中使用 boost::multiprecision::float128。

我的编译器版本是 苹果 clang 版本 11.0.0 (clang-1100.0.20.17) 目标:x86_64-apple-darwin18.7.0 线程模型:posix

我正在使用 boost.1.71.0

我收到以下编译错误

'quadmath.h' 文件未找到

在 float128.hpp 中

extern "C" {
#include <quadmath.h>
}

我看到了几个关于这个问题的帖子

因为我发现的讨论主题已有几年历史了

  • 那么我不能在 xCode 项目中使用 boost::multiprecision::float128 仍然是真的吗?
  • 可能在 boost 设置过程中丢失了某些东西,它有 lib 文件夹,并且在 boost 设置过程中丢失了一些东西?
  • 我当前的编译器版本是否有解决此问题的方法?

【问题讨论】:

  • boost 安装在哪里/如何安装?您的标题搜索路径设置为什么?
  • 我已经在我的项目文件结构中设置了 boost,因为我将使用 boost 的一部分,我使用 bcp 来获取我需要的 .hpp 文件。我认为我的标题搜索路径设置正确,因为我可以毫无问题地使用 int128。我遇到了 float128 的问题,看起来 xcode 有问题。约翰·马多克(John Maddock)大约一年前在 boost 票下评论过,clang 不支持 float128 和 libquadmath,所以你不走运:该头文件仅受 gcc 和 Intel 编译器支持。但我不确定这是否仍然有效,或者可能有一些方法可以解决这个问题。
  • 好吧,file not found 错误似乎表明设置存在问题。我建议你使用像 Homebrew 这样的包管理器,以避免在你的系统上管理 boost 的安装。
  • @trojanfoe 感谢您的推荐,最初我使用 Homebrew 和 cocoapods,但我遇到了空间问题,并决定使用 bcp 工具来仅获取所需的 boost 部分。但这不是标准文件未找到错误,这是已知的问题与铿锵声。我在这里写信是希望最近有所改变。

标签: c++ ios xcode boost clang++


【解决方案1】:

遗憾的是,它仍然不受支持。 “vanilla clang”比 Apple clang 更有希望,但仍然需要做很多工作来确保所有部分都到位。

接下来的问题是herework has been done 让它用clang >=8 编译。但是 Apple Clang 还是不行。

作为一种解决方法,您可以使用boost::multiprecision::cpp_bin_float_quad

【讨论】:

  • 感谢您的回答,但我认为我不能使用 boost::multiprecision::cpp_bin_float_quad 来处理我的情况,我需要将 boost int128 除以浮点数。
  • 您不能将 int128 转换为 cpp_bin_float_quad?
  • 我刚刚用 cpp_bin_float_oct 进行了测试,它被编译了,看起来值被正确地转换了。我的印象是 float128 仅支持 128 个浮点数的 boost 数据类型。而且我仍然不太清楚这个 cpp_bin_float_oct 是如何工作的,因为我在 boost 方面很新,无法从boost.org/doc/libs/1_70_0/libs/multiprecision/doc/html/… i
  • oct 是 quad 的两倍。
猜你喜欢
  • 2015-09-27
  • 1970-01-01
  • 2017-03-17
  • 2016-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多