Печать вектора четверной точности в C++
Я пытаюсь напечатать вектор четвертой точности, используя GCC 4.7.1 в CodeBlocks. Это код:
#include <iostream>
#include <vector>
#include <quadmath.h>
...
int width = 46;
char buf[128];
for (std::vector<__float128>::const_iterator i = sol_r.begin(); i != sol_r.end(); ++i)
{
int n = quadmath_snprintf (buf, sizeof buf, "%+-#*.20Qe", width, *i);
if ((size_t) n < sizeof buf)
{
std::cout << buf << ' ';
}
}
Я получаю эту ошибку: undefined reference to 'quadmath_snprintf(char*, unsigned int, char const*, ...)'
, Что я делаю неправильно?
Что касается дублирующего требования, ответ, указанный как дубликат, действительно содержит часть решения, но это общий вопрос, включающий несколько различных проблем.
Пользователи, имеющие проблемы с печатью векторов четвертой точности, скорее всего, неопытны (как и я) и получат больше пользы от более краткого ответа и / или более точных источников.
Заданный здесь вопрос можно решить, проверив:
https://gcc.gnu.org/ml/gcc-help/2011-06/msg00148.html (добавить заголовок как extern)
Что такое неопределенная ссылка / неразрешенная внешняя ошибка символа и как ее исправить? (ссылка на соответствующую библиотеку как libquadmath
)