当使用Cygwin和GCC在Win 7和四精度库:
gcc -c lquad.c..。这没问题,但是
gcc lquad.o..。产生以下错误:
/tmp/ccLM2lOn.o:lquad.c:(.text+0xdb3):对“`sqrtq”的未定义引用 collect2:错误: ld返回1退出状态
我在C源代码中使用了#include quadmath.h,__float128类型可以工作,但函数不能工作(例如,上面的sqrtq )。该头文件包含所有相关的外部内容,例如:
extern __float128 sqrtq (__float128) __quadmath_throw;我找到了一个dll循环-0.dll,其中肯定包含了这些功能。它位于Cygwin安装的三个地方。此外,我将其复制到Windows\System中,但这并没有帮助。
这里有一个相关的问题,但是没有对我有任何帮助,而且也不是完全相同的错误:Quadruple Precision in C++ (GCC)
发布于 2016-05-31 17:27:00
当您需要链接器解决方案时,您正在寻找编译器解决方案:您的代码正在按其应有的方式编译,所以代码中的任何更改都不会解决您的问题:
/tmp/ccLM2lOn.o:lquad.c:(.text+0xdb3):对“`sqrtq”的未定义引用 collect2:错误: ld返回1退出状态
undefined reference to错误指示对象所需的函数位于另一个库中。按照@Marc的建议,尝试将-lquadmath添加到链接器行中。
https://stackoverflow.com/questions/34058685
复制相似问题