GCC 4.5在运行库中添加了十进制浮点数支持(http://gcc.gnu.org/gcc-4.5/changes.html)。我能够编译包括“using namespace std::decimal”在内的代码,然后在代码中使用decimal64等内容。但是,很遗憾,我缺少一些用于链接代码的库。我还没有找到应该需要哪些库。DFP支持在gcc中启用(--enable-decimal-float=dpd)。
此外,是否应该有一种快速的方法来提供代码中的十进制字面量?通过快速,我指的是由模板处理并在编译时翻译的用户定义字面量。我不想提供在运行时转换的双精度浮点数(尽管性能和我真的无法忍受将评估从编译时移动到运行时,仍存在舍入问题...)。我已经找到了后缀“df”,但似乎编译器没有识别它。
我正在使用目标powerpc-ibm-aix7.1.0.0上的gcc版本4.7.1。
链接器错误消息:
此外,是否应该有一种快速的方法来提供代码中的十进制字面量?通过快速,我指的是由模板处理并在编译时翻译的用户定义字面量。我不想提供在运行时转换的双精度浮点数(尽管性能和我真的无法忍受将评估从编译时移动到运行时,仍存在舍入问题...)。我已经找到了后缀“df”,但似乎编译器没有识别它。
我正在使用目标powerpc-ibm-aix7.1.0.0上的gcc版本4.7.1。
链接器错误消息:
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatsisd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatsidd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatsitd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_mulsd3
ld: 0711-317 ERROR: Undefined symbol: .__dpd_muldd3
ld: 0711-317 ERROR: Undefined symbol: .__dpd_multd3
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatdisd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatunsdisd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatdidd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatunsdidd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatditd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatunsditd
TIA.
_Decimal64
的字面后缀是dd
(_Decimal32
是df
),但这并不能解释为什么编译器不能识别后者(更不用说 DPD 例程了)。你是否尝试向编译器传递--enable-version-specific-runtime-libs
参数? - Frédéric Hamidi