QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1533|回复: 7

在vi中用c语言编程,库文件路径如何设置?

[复制链接]
发表于 2004-2-10 21:06:15 | 显示全部楼层 |阅读模式
我在vi中用c语言编程,用到stdio.h文件时还行,可用到其他一些库文件,如math.h,graphic.h时却在编译中出错,该如何设置呢?请诸位大虾帮帮忙!
发表于 2004-2-10 21:13:53 | 显示全部楼层
graphic.h是TC里面的东东
math.h?不知道,是不是:
[code:1]#include <math.h>[/code:1]??
应该不会有错啊~编译器提示什么??
这个和编辑器(vi)无关的
回复

使用道具 举报

 楼主| 发表于 2004-2-10 21:27:11 | 显示全部楼层
对,是include<math.h>,出错提示:
/tmp/ccMFAUNX.o(.text+0x61): In function `main':
: undefined reference to `sqrt'
collect2: ld returned 1 exit status
tc里面的东西有些不能在这里面用吗?我是个新手,请您介绍些这方面的资料吧!谢谢!
回复

使用道具 举报

发表于 2004-2-10 23:20:22 | 显示全部楼层
sqrt()函数不能用。我这也是。
自己建一个sqrt()。

把sqrt改为其他名称。例如:
[code:1]
#include <stdio.h>

int sqrtaaa(int x);

int main(void)
{
.......
      sqrtaaa(x);
.......
}

int sqrtaaa(int x)
{
      return (x*x)
}

[/code:1]
回复

使用道具 举报

发表于 2004-2-11 03:20:35 | 显示全部楼层
whereis math.h

see if it is in /usr/include/math.h
回复

使用道具 举报

 楼主| 发表于 2004-2-11 11:45:55 | 显示全部楼层
我知道在那里面,但是该如何设置呢?
回复

使用道具 举报

发表于 2004-2-11 18:09:32 | 显示全部楼层
[quote:5d1b572639="zhifengw"]我知道在那里面,但是该如何设置呢?[/quote]
在linux系统中,数学库math.c是和C系统分开的。要用 -lm选项或其他选项来编译。

例如。有sqrt(),pow(),exp(),log().sin().cos().tan()等。编译要加-lm选项。
gcc  math.c -o math  -lm
[code:1]
//示范:嘻嘻  
//文件名:math.c

#incldue <stdio.h>
#include <math.h>

int main(void)
{
     float x, y;
     
     printf("输入一个数:");
     scanf("%f", &x);
     if ( x>0)
     {
            y=sqrt(x);
            printf("\nX的平方根为%g\n\n", y);
     }
     else
            printf("\n错误。输入的值必须是非负数!!\n\n");
     return 0;
}
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-2-12 13:59:01 | 显示全部楼层
哦!谢谢!我想问问,在turbo c中的那些库文件,在linux中都有吗?库文件名也都一样吗?有没有关于编译这方面的基础资料啊?-lm这个选项是什么意思?其他的库文件也可以用这个选项来编译吗?谢谢指教!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-8 23:09 , Processed in 0.036730 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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