B. Standage
B. Standage

Reputation: 45

undefined reference to `roundf' - C language

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!

Upvotes: 3

Views: 9607

Answers (1)

P.P
P.P

Reputation: 121407

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?

Upvotes: 14

Related Questions