我的程序的一部分是计算浮点数的sqrt
。
当我写sqrt(1.0f);
时,我成功编译了程序,但是当我写sqrt(-1.0f);
时
编译失败了undefined reference to 'sqrt'
- 我想在这种情况下会返回nan
值...
我用gcc编译程序。
当我使用visual studio编译它时,它会成功地编译为sqrt的负参数。
如何解决问题
谢谢
答案 0 :(得分:5)
您必须在大多数基于Unix的系统上添加-lm
标志,如:
使用编译:
gcc -c file.c
然后使用以下链接:
gcc -o program file.o -lm
或者如果您不想分开两个编译步骤,只需写下:
gcc -o program file.c -lm
答案 1 :(得分:4)
与-lm
关联以与数学库链接