2

Part of my program is to calculate sqrt of float number. When I write sqrt(1.0f); I success to compile the program,but when I write sqrt(-1.0f); the compilation fails with undefined reference to 'sqrt' - I suppose that in this case the nan value will be returned... I compile the program uing gcc. When I compile it with visual studio it is compiled successfuly with negative argument to sqrt. How the problem could be solved Thank you

Pascal Cuoq
  • 77,397
  • 7
  • 153
  • 272
Yakov
  • 9,221
  • 29
  • 109
  • 199

2 Answers2

5

You have to add the -lm flag on most Unix-based systems, as in:

Compile using:

gcc -c file.c

and then link using:

gcc -o program file.o -lm

Or if you don't want to separate the two compilation steps, simply write:

gcc -o program file.c -lm
4

Link with -lm to link with the math library

Manuel Selva
  • 17,796
  • 21
  • 83
  • 129