免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: imonyse
打印 上一主题 下一主题

[函数] [请教]程序包括了math.h头文件,但是编译器找不到acos()函数? [复制链接]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
1 [报告]
发表于 2007-04-28 23:35 |显示全部楼层
似乎有太多的人分不清楚 C 中声明和定义的区别,也不明白编译和链接的区别。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2007-04-28 23:49 |显示全部楼层
原帖由 antigloss 于 2007-4-28 23:42 发表
似乎需要指明 -lm 来链接标准数学库是一个小 bug。

标准对此有规定么?如果有的话应该早就修正了。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
3 [报告]
发表于 2007-04-29 00:02 |显示全部楼层
原帖由 imonyse 于 2007-4-28 23:49 发表
惭愧,我的问题应该是对gcc不了解。

不仅仅。
我只知道用cc可以生成那个a.out执行文件,而且我也不明白bash里面打cc和gcc的区别......

在许多 Linux 安装中,cc 就是到 gcc 的一个链接。
声明(statement)和定义(define),编译(compile)和链接(link)的区别我应该是知道的.

既然如此,那么看到 "undefined reference to `acos'" 的错误信息就应该清楚是没有链接对应的库,而使用 printf 等函数又没有问题,那么不难推知标准数学库和标准 I/O 库不在同一个文件中。既然如此,那么标准数学库是什么呢?看看 acos 的手册,至少在我的系统中,其手册中是清楚的表明了要 "Link with -lm." 当然,如果在手册中没有找到这个,可以进一步用其他搜索引擎,例如 google,很容易就可以找到答案。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2007-04-29 11:33 |显示全部楼层
原帖由 imonyse 于 2007-4-29 07:33 发表
因为我在#GOOGLE确实用了关键词:math.h, acos(), cc -lm,...搜索过了,没有看到相关条目的......这样很郁闷

你用错了关键词,例如说我用如下关键词在 google 中搜索:
math.h "undefined reference to"
第一个结果就是。

建议在碰到程序报错的时候直接用报错信息作为关键词进行搜索。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP