undefined reference to libquadmath routines

Ian Lance Taylor iant@google.com
Tue Jun 7 13:46:00 GMT 2011


Syed Bilal Mehdi <bilal.mehdi87@gmail.com> writes:

> /site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:13:
> undefined reference to `sqrtq(__float128)'
> /site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:14:
> undefined reference to `quadmath_snprintf(char*, unsigned int, char const*,
> ...)'
> /site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:18:
> undefined reference to `quadmath_snprintf(char*, unsigned int, char const*,
> ...)'
> /site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:22:
> undefined reference to `quadmath_snprintf(char*, unsigned int, char const*,
> ...)'
> /site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:28:
> undefined reference to `quadmath_snprintf(char*, unsigned int, char const*,
> ...)'
> /site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:18:
> undefined reference to `quadmath_snprintf(char*, unsigned int, char const*,
> ...)'
>
> What am I missing here. I tried specifying -lquadmath but that didn't help!!

The format of those errors tells me that you are calling these as C++
functions, but they are written in C.  There is a missing extern "C"
somewhere.

In fact, it's in quadmath.h.  That's a bug.  Please file a bug report
for it.  Thanks.

In the meantime, write this:

extern "C" {
#include "quadmath.h"
}

Ian



More information about the Gcc-help mailing list