Chinaunix

标题: 本人初学linux和c,请教gcc问题 [打印本页]

作者: 大洛沙鹰    时间: 2009-08-15 18:28
标题: 本人初学linux和c,请教gcc问题
具体情况如下:
[syliving@localhost linun]$ cat p126.c
#include <math.h>
main()
{
    float x,y;
    printf("The program takes x and y from stdin and displays x^y.\n" );
    printf("Enter number x:" );
    scanf("%f",&x);
    printf("Enter number y:" );
    scanf("%f",&y);
    printf("x^y is%6.3f\n",power((double)x,(double)y));
}
[syliving@localhost linun]$ gcc p126.c -lm -o p126
p126.c: 在函数‘main’中:
p126.c:5: 警告:隐式声明与内建函数‘printf’不兼容
p126.c:7: 警告:隐式声明与内建函数‘scanf’不兼容
/tmp/cc01iATy.o: In function `main':
p126.c: (.text+0x67): undefined reference to `power'
collect2: ld 返回 1


请各位达人指教,这是什么问题,应该怎么解决!小弟在此谢谢大家了!(本人系统fedora11)

[ 本帖最后由 大洛沙鹰 于 2009-8-15 18:35 编辑 ]
作者: Cyberman.Wu    时间: 2009-08-15 19:08
1. 在前面加上#include <stdio.h>消除告警。
2. 数学库应该只有一个pow而没有power吧?
作者: 大洛沙鹰    时间: 2009-08-15 20:15
谢谢二楼的,问题解决,
在前面加上了 #include <stdio.h>
             #include <stdlib.h>
将power改成pow,通过
作者: Godbach    时间: 2009-08-16 23:39
如果实际代码中确实是用到了math.h的函数,那么编译时还有加上-lm选项。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2