Linux 下用gcc 编译不能识别sqrt 加上-lm 也不可以

lianwang854 2011-11-07 10:47:05
我在Linux下用gcc 编译程序:
利用命令: gcc -lm -o root root.c
显示: root.c:(.text+0xa4):Undefine reference to 'sqrt'
root.c:(.text+0xd0):Undefine reference to 'sqrt'
collect2: ld 返回 1

我在程序的开头已经加上了 #include <math.h>

请高手指教!
谢谢
...全文
503 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lengxujun 2011-11-08
  • 打赏
  • 举报
回复
我试了下,没有问题。应该是其他问题。

t.c
#include <stdio.h>
#include <math.h>

int main(void)
{
sqrt(5);

return 0;
}


编译命令:
gcc -lm -o t t.c
lianwang854 2011-11-08
  • 打赏
  • 举报
回复
谢谢各位!问题解决。
自信男孩 2011-11-08
  • 打赏
  • 举报
回复
我尝试了一下,跟命令的顺序没有关系:gcc -lm -o root root.c一样可以通过并且没有错误和警告。只是不加-lm会出现你上面所说的错误。如果不加#include <math.h>会出现一个警告(如果已经加上了-lm)。
我怀疑是其它方面的原因。
疯狂鸭子 2011-11-08
  • 打赏
  • 举报
回复
楼主建议你去学下语法。。。

最基本的东西要懂啊。。
苏客达 2011-11-08
  • 打赏
  • 举报
回复
受教了
xunxun 2011-11-07
  • 打赏
  • 举报
回复
顺序错误
链接开关放在最后

gcc -o root root.c -lm

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧