红联Linux门户
Linux帮助

呃~~~~~我又有问题了,会C的进来教下

发布时间:2010-04-24 23:41:03来源:红联作者:weqazlove
#include
#include

int main(int argc, char** argv)
{long int i=1,x,y;
for(i=1;i<100000;i++)
{x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==1+100&&y*y==i+268)
printf("\n%ld\n",i);
}

return 0;
}
为什么会编译失败啊??麻烦指名下谢谢,还有红联有没有专门讨论C语言的QQ群啊?或者IRC啊?
文章评论

共有 11 条评论

  1. wangfwk 于 2011-06-02 15:47:26发表:

    上面的兄弟分析的不错

  2. 考乌特莫克 于 2011-02-19 22:26:46发表:

    链接的时候链不到,建议以后出这种问题的时候你可以先使用 -c 选项进行编译,如果可以通过就表示编译没有问题,链接出错你再看哪个库没有引用。

  3. 楼兰后主 于 2010-05-31 10:54:59发表:

    厉害厉害,高兴啊,以后有问题可以找到人请教了。还望不要嫌麻烦,呵呵。

  4. zhgyxj_85 于 2010-05-29 23:04:02发表:

    5# dchwlinux


    高手啊

  5. zguangyu0000 于 2010-05-29 14:42:38发表:

    这个问题也困扰我好久了,终于有答案了……

  6. yue010yue 于 2010-05-28 13:13:38发表:

    路过。。。。纯属挺你。。。

  7. huojusan 于 2010-05-27 00:26:27发表:

    {:2_96:}

  8. dchwlinux 于 2010-04-25 21:23:09发表:

    [i=s] 本帖最后由 dchwlinux 于 2010-4-26 08:04 编辑 [/i]

    /tmp/ccE7NkXQ.o: In function `main':
    test.c:(.text+0x44): undefined reference to `sqrt'
    test.c:(.text+0x7d): undefined reference to `sqrt'
    collect2: ld returned 1 exit status

    少库,sqrt函数没有定义。

    [attach]30451[/attach]
    [attach]30452[/attach]
    if(x*x==1+100&&y*y==i+268)我把1改成i了,否则不出结果。应该是你笔误吧。
    -lm分开看l表示加连接库(lib),m是库名,全名是libm.so,要加别的库依次类推。另外如果要用自己写的库文件,且不有放在默认库文件的目录下,那可能要用到 -L/绝对路径,表示指定库的路径。-I/绝对路径,表示指定头文件(就是那个#include)的路径。这几个参数都是很基础的gcc参数,鸟哥都教过的。

  9. weqazlove 于 2010-04-25 11:22:14发表:

    哦忘记补充了,我用的是GEANY

  10. shen.yhx 于 2010-04-25 01:37:21发表:

    路过,为什么是%ld?应该是%d,如果我没记错的话。

  11. leohsiung 于 2010-04-25 00:07:09发表:

    编译时有没有假 -lm链接数学函数库?