Как использовать десятичную дробь с плавающей запятой в Gnu C++ (g++ )?

В GCC 4.5 добавлена ​​поддержка десятичных чисел с плавающей запятой в библиотеке времени выполнения (http://gcc.gnu.org/gcc-4.5/changes.html).. Я могу скомпилировать код, в том числе, используя пространство имен std ::decimal, затем используя decimal64 и так далее в коде.

К сожалению, мне не хватает какой-то библиотеки для компоновки кода. Я не смог выяснить, какие библиотеки должны быть необходимы. Поддержка DFP включена в gcc (--enable -decimal -float=dpd)

Кроме того, должен ли быть какой-то быстрый способ предоставления десятичных литералов в коде? Под быстрым я подразумеваю определяемые пользователем литералы, которые обрабатываются шаблонами и транслируются во время компиляции. Я не хочу предоставлять двойные числа, которые преобразуются во время выполнения (, несмотря на производительность и тот факт, что я действительно не могу переносить оценки из времени компиляции во время выполнения, по-прежнему возникают проблемы с округлением... ). Я уже нашел суффикс "df", но, похоже, компилятор его не распознает.

Я использую gcc версии 4.7.1 на целевом powerpc -ibm -aix7.1.0.0.

Сообщения об ошибках компоновщика:

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

ТИА.

7
задан MSalters 17 August 2012 в 08:24
поделиться