LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 715|回复: 3

链接错误,不能连接标准库

[复制链接]
发表于 2005-12-19 22:11:24 | 显示全部楼层 |阅读模式
比如我有一个程序如下:
#include <math.h>
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
难道是链接标准库<math.h>出错误了?怎么会这样,怎么解决?谢谢!
发表于 2005-12-19 22:59:53 | 显示全部楼层
gcc -o -lm test test.o
要连接数学库

man sqrt
回复 支持 反对

使用道具 举报

发表于 2005-12-20 11:19:14 | 显示全部楼层
头文件和库是两个东西,需要配套使用
libm是数学库,不是缺省链接的
回复 支持 反对

使用道具 举报

发表于 2005-12-20 14:23:52 | 显示全部楼层
其实新的gcc编译需要连接libm.so的程序时已经不需要再加-lm了
至少3.4.3是这样
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表