这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{
float f = .55;
int i;
i = round(f);
}
我遇到的第一个问题是round()函数本身。当这样调用时: 圆(foo) 没有编译错误。粗略地说,这是没有用的,因为返回了round()的所需输出。但是,当我尝试像这样捕获round()的输出时:
i = round(f)
我收到一个编译时错误:
test.c:(.text+0x1b): undefined reference to `round'
就好像只是尝试分配round()的返回值一样,强制未定义round()。我在这里阅读了一些帖子,说我应该将-lm传递给GCC,但这没什么区别。
尝试从printf调用round()会给我同样的错误,例如:
printf("....", round(f))
这实际上使我发疯,因为所有在线参考都说:
int i = round(f)
应该工作。
这是Ubuntu 18.04上的最新GCC。
答案 0 :(得分:0)
好吧...所以-这当然是我自己的无知。我显然没有在参数列表的末尾添加“ -lm”。现在一切正常。