当试图调用函数时math.h,我收到如下链接错误
undefined reference to sqrt
Run Code Online (Sandbox Code Playgroud)
但我正在做一个#include <math.h>
我正在使用gcc并编译如下:
gcc -Wall -D_GNU_SOURCE blah.c -o blah
Run Code Online (Sandbox Code Playgroud)
为什么链接器找不到定义sqrt?
调用gcc时将-lm添加到命令:
gcc -Wall -D_GNU_SOURCE blah.c -o blah -lm
这将告诉链接器链接数学库.包括math.h将告诉编译器存在类似sqrt()的数学函数,但它们是在一个单独的库中定义的,链接器需要将其与可执行文件打包在一起.
正如FreeMemory指出的那样,库名为libm.a.在类Unix系统上,命名库的规则是lib [blah] .a.然后,如果要将它们链接到可执行文件,请使用-l [blah].
| 归档时间: |
|
| 查看次数: |
7301 次 |
| 最近记录: |