Печать вектора четверной точности в 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)

0 ответов

Другие вопросы по тегам