Search code examples
cnansqrt

undefined reference to `sqrt'


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


Solution

  • 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