当前位置: 技术问答>linux和unix
链接错误,不能连接标准库
来源: 互联网 发布时间:2015-11-03
本文导语: 比如我有一个程序如下: #include int main() { double db = 0.0; db = sqrt(10.0); return 0; } 保存为test.c 编译运行gcc -c test.c,产生test.o,正确,但下面链接出错: gcc -o test test.o 出现错误: test.o(.text+0x29):In function 'main': ...
比如我有一个程序如下:
#include
int main()
{
double db = 0.0;
db = sqrt(10.0);
return 0;
}
保存为test.c
编译运行gcc -c test.c,产生test.o,正确,但下面链接出错:
gcc -o test test.o
出现错误:
test.o(.text+0x29):In function 'main':
:undefined reference to 'sqrt'
collect2:ld returned 1 exit status
难道是链接标准库出错误了?怎么会这样,怎么解决?谢谢!
#include
int main()
{
double db = 0.0;
db = sqrt(10.0);
return 0;
}
保存为test.c
编译运行gcc -c test.c,产生test.o,正确,但下面链接出错:
gcc -o test test.o
出现错误:
test.o(.text+0x29):In function 'main':
:undefined reference to 'sqrt'
collect2:ld returned 1 exit status
难道是链接标准库出错误了?怎么会这样,怎么解决?谢谢!
|
-lm
欢迎访问LINUX下C语言编程网站 www.linuxc.net
欢迎访问LINUX下C语言编程网站 www.linuxc.net
|
你编译的时候没指定库,这样函数只是找到了声明,却没有找到实现的实际位置,所以不是库的问题,而是自己的问题
gcc -o test test.o -lm
这样应该就可以了
gcc -o test test.o -lm
这样应该就可以了
|
楼上正解,man sqrt看看需要的头文件和库文件。