您好我正在使用linux 12.04和geany进行编码。我在C中编写的代码完全正常,直到我使用sqrtf命令查找浮点的平方根。 错误:HAC3.c :(。text + 0xfd7):未定义对`sqrtf'的引用。
我正在使用sqrtf的代码部分:
float syn(float *a, float *b, int dimensions)
{
float similarity=0;
float sumup=0;
float sumdown=0;
float as=0;
float bs=0;
int i;
for(i=0; i<dimensions; i++)
{
sumup = sumup + a[i] * b[i];
as = as + a[i] * a[i];
bs = bs + b[i] * b[i];
}
sumdown = sqrtf(as) * sqrtf(bs);
similarity = sumup / sumdown;
return similarity;
}
我包括math.h但这似乎不是问题。 所以我想知道有没有办法修复geany所以这不会再出现? 我知之甚少,所以尽量解释一下。
答案 0 :(得分:11)
转到Build
- &gt; Set Build Commands
然后在C commands
下点击空标签,它会让您指定一个新标签(将其命名为Link
)。输入gcc -Wall -o "%e" "%f" -lm
- 其中-lm
会告诉它将math
库链接到您的应用。点击OK
。
然后点击Build
并选择新创建的标签 - Link
。这应该为你做。
答案 1 :(得分:9)
您需要与-lm
关联才能提供数学函数。
答案 2 :(得分:0)
除了这里的许多很好的答案之外,支持<math.h>
的C99版本的命令的可移植形式为specified by POSIX,称为c99 -l m
。话虽如此,每个重要的Linux编译器都支持-lm
。