我编写了一个多维数值积分代码,它能够在 Linux 中以双精度、长双精度或四倍精度运行。所有模式都可以完美地编译和工作,但是当我尝试在 Mac 上为四倍精度案例编译相同的代码时,我最终会遇到错误,我不确定它们的含义。
我正在用 g++ 编译,但我尝试了其他编译器(我确实尝试过 clang 只是为了看看它会做什么,但据我所知,它不能支持四倍精度?如果我错了,请纠正我)。
我链接了相关的库和头文件(包括 quadmath.h 头文件),我最终得到了来自 quadmath.h 的这些错误:
Unsupported machine mode 'TC'
typedef _Complex float __attribute__((mode(TC))) __complex128
error unknown type name '__float128'
__float128 错误也会重新出现在各种数学运算中,例如 acosq、asinq 等...
我以前从未遇到过不受支持的机器模式错误。我看过 GNU 编译器说明GNU 编译器说明和GNU 浮动类型。
很难为人们编译和测试制作一个最小的工作示例,所以我只是试图跟踪错误以找出问题所在,但我不确定现阶段该做什么。鉴于这些错误消息,下一步将是什么?关于 Linux 与 Mac,我有什么遗漏吗?我一直在 Linux 中编码,所以对后者不熟悉,而且似乎在 Mac 上进行四倍精度计算的方法与我习惯的方法不同。
谢谢您的帮助
-雪人