3

I'm new to C and I keep running into the same error. I am typing the code in nano text editor and compiling it in the linux terminal. My operating system is Ubuntu 14.04. Here's an example of code that won't compile,

    #include <math.h>
    #include <stdio.h>
    int main()
    {
        float x = 23.33f;
        x = roundf(x);
        printf("%f\n", x);
        return (0);
    }

The error I am receiving is,

    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

Any help is much appreciated, thanks!

B. Standage
  • 45
  • 1
  • 6

1 Answers1

14

Link with the math library:

cc example.c -o example -lm

The math library functions are not part of standard C library which is linked by default. So you need link it yourself.

There's an interesting thread about why it's not part of libc:

Why do you have to link the math library in C?

Community
  • 1
  • 1
P.P
  • 117,907
  • 20
  • 175
  • 238