undefined reference to libquadmath routines

Syed Bilal Mehdi bilal.mehdi87@gmail.com
Tue Jun 7 19:20:00 GMT 2011


That solved the problem. But now there is another problem. If I miss adding
-lfortran as external library, I get the following error during build of my
test code

/site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:15:
undefined reference to `sqrtq'
/site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:16:
undefined reference to `quadmath_snprintf'
/site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:20:
undefined reference to `quadmath_snprintf'
/site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:24:
undefined reference to `quadmath_snprintf'
/site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:30:
undefined reference to `quadmath_snprintf'
/site/ae/shares/MotionLab/papers/pingpong/examples/LongDoublePrecisionTests/test.cpp:20:
undefined reference to `quadmath_snprintf'

And when I do add  -lgfortran as external library, the build goes successful
but I get the following error during runtime

./test: error while loading shared libraries: libgfortran.so.3: cannot open
shared object file: No such file or directory

Is it a bug again? or am I missing something this time? and why is fortran
important here?


Ian Lance Taylor-3 wrote:
> 
> 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
> 
> 

-- 
View this message in context: http://old.nabble.com/undefined-reference-to-libquadmath-routines-tp31790381p31794507.html
Sent from the gcc - Help mailing list archive at Nabble.com.



More information about the Gcc-help mailing list