已经include 但是还是提示无法找到sin函数

yuchujian 2010-06-20 05:43:16
刚刚写了一行代码如下:已经include <math.h> 但是还是提示无法找到sin函数,
#include <math.h>
#include <stdio.h>
int main(void)
{
double pi = 3.1416;
printf("sin(pi/2)=%f\nln1=%f\n", sin(pi/2), log(1.0));
return 0;
}

报错如下:
[root@vmware_redhat_4_developer ~]# gcc -Wall -o lizi2 lizi2.c
/tmp/cccoULTf.o(.text+0x51): In function `main':
: undefined reference to `sin'
collect2: ld returned 1 exit status

请大仙门指点迷津。
...全文
910 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
tananade 2010-06-22
  • 打赏
  • 举报
回复
这个我还没试过呢....
mymtom 2010-06-22
  • 打赏
  • 举报
回复
-lm
别逗我乐 2010-06-22
  • 打赏
  • 举报
回复
-lm表示链接math库。
wlp555ren 2010-06-22
  • 打赏
  • 举报
回复
需要链接 -lm
cattycat 2010-06-22
  • 打赏
  • 举报
回复
-lm表示链接math库。
china_west 2010-06-22
  • 打赏
  • 举报
回复
编译器和Linux环境下或者windows环境下使用
需要做一点点改变
a11e90 2010-06-22
  • 打赏
  • 举报
回复
学习下
FIII 2010-06-22
  • 打赏
  • 举报
回复
换个编译器就好了呀 哈哈~
skyworth98 2010-06-22
  • 打赏
  • 举报
回复
是不是需要链接什么.lib文件,比如math.lib?

[Quote=引用楼主 yuchujian 的回复:]
刚刚写了一行代码如下:已经include <math.h> 但是还是提示无法找到sin函数,
#include <math.h>
#include <stdio.h>
int main(void)
{
double pi = 3.1416;
printf("sin(pi/2)=%f\nln1=%f\n", sin(pi/2), log(1.0));
return 0;
……
[/Quote]
jianuMan 2010-06-22
  • 打赏
  • 举报
回复
#include "stdafx.h"

#include <math.h>

int main()
{
double d = 1.01;
double z = sin(d);

printf("%lf", z);
}

vs2008下 没问题
应该就是gcc 编译问题了
orochi215 2010-06-22
  • 打赏
  • 举报
回复
必须加lm
PinkRobin 2010-06-21
  • 打赏
  • 举报
回复
你是在Linux下编译,不是windows下,需要额外链接math库
gcc -Wall -o lizi2 lizi2.c -lm
就行了
wangxipu 2010-06-20
  • 打赏
  • 举报
回复
-lm
oyster2008 2010-06-20
  • 打赏
  • 举报
回复
-lmath 加上这条或者换用g++
jiecai1988 2010-06-20
  • 打赏
  • 举报
回复
是不是文件路径不对啊?
simple1129 2010-06-20
  • 打赏
  • 举报
回复
好像要加上 -lm
Boover 2010-06-20
  • 打赏
  • 举报
回复
GCC中好像得指明math模块在哪里
jvs 2010-06-20
  • 打赏
  • 举报
回复
你看一下你的安装目录下有没有 math.h这个文件?
如果没有可是重装一下

69,382

社区成员

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

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