Question

Reading the documentation for math.h, it seems like all I should have to do is include math.h, and use the math functions included, such as sqrt. The problem is I get the following error when trying to use sqrt in my program. I tried math.sqrt, but that did not work, either. Any idea what I am doing wrong?

undefined reference to `sqrt'

...

#include <stdio.h>
#include <math.h>

int main (int argc, char *argv[])
{
  int a, b;

  a = 1;
  b = 5;

  if (a < sqrt (b))
    printf("1 < sqrt(5)");

  return 0;
}
Was it helpful?

Solution

You need to explicitely link with the math library as sqrt depends on it. Retry with appending -lm to your compilation line :

gcc you_file.c -o my_sqrt -lm
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top