对 `roundf' 的未定义引用 - C 语言
undefined reference to `roundf' - C language
我是 C 的新手,我一直 运行 陷入同样的错误。我在 nano 文本编辑器中输入代码并在 linux 终端中编译它。我的操作系统是 Ubuntu 14.04。这是无法编译的代码示例,
#include <math.h>
#include <stdio.h>
int main()
{
float x = 23.33f;
x = roundf(x);
printf("%f\n", x);
return (0);
}
我收到的错误是,
cc example.c -o example
/tmp/ccWV0Or8.o: In function `main':
example.c:(.text+0x1d): undefined reference to `roundf'
collect2: error: ld returned 1 exit status
make: *** [example] Error 1
非常感谢任何帮助,谢谢!
Link 与数学库:
cc example.c -o example -lm
数学库函数不是默认 linked 的标准 C 库的一部分。所以你自己需要link。
关于为什么它不是 libc 的一部分有一个有趣的话题:
Why do you have to link the math library in C?
我是 C 的新手,我一直 运行 陷入同样的错误。我在 nano 文本编辑器中输入代码并在 linux 终端中编译它。我的操作系统是 Ubuntu 14.04。这是无法编译的代码示例,
#include <math.h>
#include <stdio.h>
int main()
{
float x = 23.33f;
x = roundf(x);
printf("%f\n", x);
return (0);
}
我收到的错误是,
cc example.c -o example
/tmp/ccWV0Or8.o: In function `main':
example.c:(.text+0x1d): undefined reference to `roundf'
collect2: error: ld returned 1 exit status
make: *** [example] Error 1
非常感谢任何帮助,谢谢!
Link 与数学库:
cc example.c -o example -lm
数学库函数不是默认 linked 的标准 C 库的一部分。所以你自己需要link。
关于为什么它不是 libc 的一部分有一个有趣的话题:
Why do you have to link the math library in C?