Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1121669
  • 博文数量: 82
  • 博客积分: 3362
  • 博客等级: 中校
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-05 16:27
文章分类

全部博文(82)

文章存档

2011年(1)

2010年(19)

2009年(62)

我的朋友

分类: C/C++

2009-11-14 01:38:52


gcc的时候带-lm
因为很少使用math库
所以没有加在libc中
而是独立放在一个新的库libmath中

而gcc默认是连接libc的



在c程序中用到math库函数时,编译成obj后,再生成执行文件时,会遇到类似下面的错误:

/tmp/ccalvMPY.o: In function `main'':

/tmp/ccalvMPY.o(.text+0x40): undefined reference to `pow''

原因:因为linux中, pow 函数定义在 libm.so中,不像一般DevC++或TC是放在C语言的/lib下,所以C无法在连接时,找到相对应的库来连接。

解 决方法:编译器有一些比较通用的参数,其中的-l用来标识要链接的库信息: -lm 表示需要链接数学库libm.a或libm.so或libm.sl使用如下编译命令告诉程序数学库的位置即可gcc filename.c -lm 或gcc filename.c -lm -L/lib -L/usr/lib

  本文转载于Linux观察网--

阅读(552) | 评论(0) | 转发(0) |
0

上一篇:linux下软件推荐

下一篇:note

给主人留下些什么吧!~~