LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1628|回复: 12

在TC下编写的小程序如何移植到Linux下?

[复制链接]
发表于 2008-5-26 17:22:22 | 显示全部楼层 |阅读模式
小弟是一菜鸟,在TC下编写了个C程序,请各位大虾指点一下如何将其在linux下编译通过并运行?
主要可能是库函数的问题:

程序GRAPDB.c:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <graphics.h>
main()
{ int gdriver,gmode,posi;
double Kdb=-4294967295;
double X,Y,G1,G2,C=1,a,R,K,S,A;
int N=600,i;
K=pow(10.0,(Kdb/10));
a=1/(2*(K+1));
srand((int)time(0));
gdriver=DETECT;
initgraph(&gdriver,&gmode,"c:\\turboc2\\bgi");
setbkcolor(BLUE);
cleardevice();
setcolor(10);
for(i=0;i<N;i++)
{do
{X=1-2.0*rand()/32767;
Y=1-2.0*rand()/32767;
S=X*X+Y*Y;
}
while(S>=1);
G1=X*sqrt(-2*C*C*log(S)/S);
G2=Y*sqrt(-2*C*C*log(S)/S);
R=sqrt(a*((G1+sqrt(2*K))*(G1+sqrt(2*K))+G2*G2));
A=20*log10(R);
posi=240-8*A;
line(i,240,i,posi);
}
getchar();
closegraph();
}

在ubuntu下运行 gcc -o GRAPDB GRAPDB.c,错误如下:
GRAPDB.c:5:22: 错误: graphics.h:没有该文件或目录
GRAPDB.c: In function ‘int main()’:
GRAPDB.c:14: 错误: ‘DETECT’在此作用域中尚未声明
GRAPDB.c:15: 错误: ‘initgraph’在此作用域中尚未声明
GRAPDB.c:16: 错误: ‘BLUE’在此作用域中尚未声明
GRAPDB.c:16: 错误: ‘setbkcolor’在此作用域中尚未声明
GRAPDB.c:17: 错误: ‘cleardevice’在此作用域中尚未声明
GRAPDB.c:18: 错误: ‘setcolor’在此作用域中尚未声明
GRAPDB.c:31: 错误: ‘line’在此作用域中尚未声明
GRAPDB.c:34: 错误: ‘closegraph’在此作用域中尚未声明

程序中有#include <graphics.h> Linux下好像没有这个库,请问该如何解决?
需要换函数库吗?如何修改代码?
跪谢各位大侠!!
发表于 2008-5-26 19:18:46 | 显示全部楼层
图形界面,我不很明白,不过好像在linux下有个什么QT的编程是图形的,我不太清楚tty是否支持图形。。
回复 支持 反对

使用道具 举报

发表于 2008-5-26 19:31:50 | 显示全部楼层
考虑用SDL?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-26 20:24:23 | 显示全部楼层
Post by xiaoshao_0_0;1855304
考虑用SDL?

SDL是一个简单的函数库吗?具体如何使用啊?
回复 支持 反对

使用道具 举报

发表于 2008-5-28 19:10:40 | 显示全部楼层
文本模式也有图形库的,就是显示的图形不如xwindow的好看,名字叫做ncurses,具体情况你搜索吧.
linux下的GTKmm和QT都是在xwindows基础上的吧。如果没装gnome或者KDE还有相应的库可能就没有了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-31 23:33:21 | 显示全部楼层
那些苦好像是用来做界面的,怎么画直线呢?
回复 支持 反对

使用道具 举报

发表于 2008-6-1 13:13:31 | 显示全部楼层
SDL 相对简单一点,有中文介绍,你可以看看啊
SDL.org
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-2 16:21:10 | 显示全部楼层
Post by xiaoshao_0_0;1857588
SDL 相对简单一点,有中文介绍,你可以看看啊
SDL.org
那我先查一下SDL的资料再说,谢谢你啊!
回复 支持 反对

使用道具 举报

发表于 2008-6-15 13:35:49 | 显示全部楼层
楼主还用TC吗?貌似很老了呢,呵呵
回复 支持 反对

使用道具 举报

发表于 2008-6-22 16:45:03 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则

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