2012-01-08 127 views
2

我的程序的一部分是计算sqrt的浮点数。 当我写sqrt(1.0f);我成功编译程序,但是当我写sqrt(-1.0f); 编译失败与undefined reference to 'sqrt' - 我想,在这种情况下,nan值将返回...... 我编译程序uing GCC。 当我用visual studio编译它时,它会被成功编译并带有负面的参数给sqrt。 怎样的问题可以解决 谢谢未定义引用`sqrt'

+0

的gcc -o myprog.c中-lm MYPROG的-l以包括数学库-lm库米。 – 2012-01-08 19:41:38

回答

5

您必须添加在大多数基于Unix的系统的-lm标志,如:

编译使用:

gcc -c file.c 

然后链接使用:

gcc -o program file.o -lm 

或者,如果你不想分开的两个编译步骤,简单的写:

gcc -o program file.c -lm 
4

-lm链路与数学库链接

+0

你能否给出一个理由。我试着在头文件中包含,但后来遇到了问题中提到的错误。 – 2016-11-27 18:06:09