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