LinuxSir.cn,穿越时空的Linuxsir!

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

请教:调用math.h时候出错

[复制链接]
发表于 2005-1-5 22:49:07 | 显示全部楼层 |阅读模式
编了一个小程序test.c,包含了math.h,执行如下:
gcc test.c -lm
结果出来很多错误,如下:

In file included from /usr/include/math.h:65,
                 from test.c:3:
/usr/include/bits/mathcalls.h: In function `main':
/usr/include/bits/mathcalls.h:55: error: storage class specified for parameter `acos'
/usr/include/bits/mathcalls.h:55: error: storage class specified for parameter `__acos'
/usr/include/bits/mathcalls.h:57: error: storage class specified for parameter `asin'
/usr/include/bits/mathcalls.h:57: error: storage class specified for parameter `__asin'
/usr/include/bits/mathcalls.h:59: error: storage class specified for parameter `atan'
/usr/include/bits/mathcalls.h:59: error: storage class specified for parameter `__atan'
/usr/include/bits/mathcalls.h:61: error: storage class specified for parameter `atan2'
/usr/include/bits/mathcalls.h:61: error: storage class specified for parameter `__atan2'
/usr/include/bits/mathcalls.h:64: error: storage class specified for parameter `cos'
/usr/include/bits/mathcalls.h:64: error: storage class specified for parameter `__cos'
/usr/include/bits/mathcalls.h:66: error: storage class specified for parameter `sin'
/usr/include/bits/mathcalls.h:66: error: storage class specified for parameter `__sin'
/usr/include/bits/mathcalls.h:68: error: storage class specified for parameter `tan'
/usr/include/bits/mathcalls.h:68: error: storage class specified for parameter `__tan'
/usr/include/bits/mathcalls.h:73: error: storage class specified for parameter `cosh'
/usr/include/bits/mathcalls.h:73: error: storage class specified for parameter `__cosh'
/usr/include/bits/mathcalls.h:75: error: storage class specified for parameter `sinh'
/usr/include/bits/mathcalls.h:75: error: storage class specified for parameter `__sinh'
/usr/include/bits/mathcalls.h:77: error: storage class specified for parameter `tanh'
/usr/include/bits/mathcalls.h:77: error: storage class specified for parameter `__tanh'
/usr/include/bits/mathcalls.h:89: error: storage class specified for parameter `acosh'
/usr/include/bits/mathcalls.h:89: error: storage class specified for parameter `__acosh'
/usr/include/bits/mathcalls.h:91: error: storage class specified for parameter `asinh'
/usr/include/bits/mathcalls.h:91: error: storage class specified for parameter `__asinh'
..
..
..
后面还有很多.是不是我少装什么东西了?
使用fc1.
      请指点!!!
发表于 2005-1-5 23:40:01 | 显示全部楼层
兄弟,贴出你的源程序!
 楼主| 发表于 2005-1-6 12:30:30 | 显示全部楼层
源程序如下,很简单的一个试验程序.首次编c程序,是不是写错了?

main( )

#include <math.h>
{
double x;
double y;
x=9.0;
y=sin(x);
printf("%f\n",y);
}

出错信息除了上面给的外,还有这个:
..
..
/usr/include/math.h:125: error: storage class specified for parameter `signgam'
/usr/include/math.h:259: error: storage class specified for parameter `_LIB_VERSION_TYPE'
/usr/include/math.h:264: error: storage class specified for parameter `_LIB_VERSION_TYPE'
/usr/include/math.h:264: error: redeclaration of `_LIB_VERSION_TYPE'
/usr/include/math.h:259: error: `_LIB_VERSION_TYPE' previously declared here
/usr/include/math.h:264: error: syntax error before "_LIB_VERSION"
/usr/include/math.h:290: error: storage class specified for parameter `matherr'
/usr/include/math.h:290: error: declaration for parameter `matherr' but no such parameter
/usr/include/math.h:264: error: declaration for parameter `_LIB_VERSION_TYPE' but no such parameter
/usr/include/math.h:259: error: declaration for parameter `_LIB_VERSION_TYPE' but no such parameter
/usr/include/math.h:125: error: declaration for parameter `signgam' but no such parameter
/usr/include/bits/mathcalls.h:297: error: declaration for parameter `__ilogbl' but no such parameter
/usr/include/bits/mathcalls.h:297: error: declaration for parameter `ilogbl' but no such parameter
/usr/include/bits/mathcalls.h:293: error: declaration for parameter `__scalbnl' but no such parameter
/usr/include/bits/mathcalls.h:293: error: declaration for parameter `scalbnl' but no such parameter
....
发表于 2005-1-6 12:55:34 | 显示全部楼层
你的 #include <math.h> 怎么跑到那里去了?呵呵,应该是这样吧:
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main(int argc, char *argv[])
  4. {
  5.     ......
  6. }
复制代码

编译时的最后一个参数应该是 -lm
 楼主| 发表于 2005-1-6 15:05:07 | 显示全部楼层
:sorry ,呵呵,真不好意思,原来是位置不对.太粗心了我.多谢了!!.
发表于 2005-1-8 09:22:50 | 显示全部楼层
下次当心一点了。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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