[问题]在TC下编写的两个小程序如何移植到ubuntu8.04下?

软件和网站开发以及相关技术探讨
jqwzz
帖子: 23
注册时间: 2008-05-23 17:23

[问题]在TC下编写的两个小程序如何移植到ubuntu8.04下?

#1

帖子 jqwzz » 2008-05-26 16:44

小弟是一菜鸟,在TC下编写了两个C程序,请各位大虾指点一下如何将其在ubuntu8.04下编译通过并运行?
主要可能是库函数的问题:
程序一SUNO1.c:
#include<time.h>
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
main()
{ int i,M=1024,N=20;
double fm=2000000;
double x,y,pi=3.14,a1,a2,a3,w,c,r,t;
c=sqrt(2/(double)M);
w=2*pi*fm;
srand((int)time(0));
for(t=1;t<N+1;t++)
{x=0,y=0;
for(i=1;i<M+1;i++)
{ a3=(2*pi*i-pi+(2*pi*rand()/32767-pi))/(4*M);
a1=2*pi*rand()-pi;
a2=2*pi*rand()-pi;
x=x+c*cos(w*t*cos(a3)+a1);
y=y+c*sin(w*t*sin(a3)+a2);
}
r=sqrt(x*x+y*y)/sqrt(2);
printf("%f\n",r);
}
getchar();
}
在ubuntu下运行 gcc -o SUNO1 SUNO1.c,错误如下:
/tmp/ccAvpfUp.o: In function `main':
SUNO1.c.text+0x6c): undefined reference to `sqrt'
SUNO1.c.text+0x17a): undefined reference to `cos'
SUNO1.c.text+0x18b): undefined reference to `cos'
SUNO1.c.text+0x1aa): undefined reference to `sin'
SUNO1.c.text+0x1b8): undefined reference to `sin'
SUNO1.c.text+0x1ec): undefined reference to `sqrt'
/tmp/ccAvpfUp.o.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld 返回 1


程序二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下好像没有这个库,请问该如何解决?
跪谢各位大侠!!
头像
Yizer
帖子: 297
注册时间: 2007-11-07 14:41
来自: 佳木斯
联系:

#2

帖子 Yizer » 2008-05-26 17:12

第一个试一下cmath库
Dell 1520
------------------------
Intel Core T7500
1G*2
120G
Nvidia 8600 GT
My BLOG
jqwzz
帖子: 23
注册时间: 2008-05-23 17:23

#3

帖子 jqwzz » 2008-05-26 17:14

cmath库是什么?如何使用?具体命令?
非常感谢!
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#4

帖子 BigSnake.NET » 2008-05-26 17:35

第一个加 -lm

第二个 graphics.h 不是标准的库, 找别的图形库重写绘图部分
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
jqwzz
帖子: 23
注册时间: 2008-05-23 17:23

#5

帖子 jqwzz » 2008-05-26 17:45

非常感谢楼上的回答!
能不能给我具体指点一下该使用什么图形库,具体怎么使用?谢谢!
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#6

帖子 BigSnake.NET » 2008-05-26 17:48

jqwzz 写了:非常感谢楼上的回答!
能不能给我具体指点一下该使用什么图形库,具体怎么使用?谢谢!
不熟悉..
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
jqwzz
帖子: 23
注册时间: 2008-05-23 17:23

#7

帖子 jqwzz » 2008-05-26 17:52

仍然很感谢楼上的兄弟啊!
希望其他高人赐教!
谢谢!
linser
帖子: 243
注册时间: 2005-09-28 9:03

#8

帖子 linser » 2008-05-26 18:07

图形库可以用svgalib
头像
stlxv
论坛版主
帖子: 8275
注册时间: 2006-05-03 0:39
来自: المريخ

#9

帖子 stlxv » 2008-05-26 18:56

参考这篇文章,这是最完美的解决方法:
viewtopic.php?t=69330&highlight=
PHP是最好的语言!不服来战!
jqwzz
帖子: 23
注册时间: 2008-05-23 17:23

#10

帖子 jqwzz » 2008-05-26 20:14

linser 写了:图形库可以用svgalib
有svgalib库的具体使用方法介绍吗?网上找了一下,讲得好简单,没有具体的细节性的使用介绍!
很感谢这位兄台!
jqwzz
帖子: 23
注册时间: 2008-05-23 17:23

#11

帖子 jqwzz » 2008-05-26 20:15

stlxv 写了:参考这篇文章,这是最完美的解决方法:
viewtopic.php?t=69330&highlight=
这篇文章好像和Linux没什么关系吧?
真诚感谢楼上兄弟!
头像
stlxv
论坛版主
帖子: 8275
注册时间: 2006-05-03 0:39
来自: المريخ

#12

帖子 stlxv » 2008-05-26 20:57

jqwzz 写了:
stlxv 写了:参考这篇文章,这是最完美的解决方法:
viewtopic.php?t=69330&highlight=
这篇文章好像和Linux没什么关系吧?
真诚感谢楼上兄弟!
这样你的程序就不用修改可以直接用了
PHP是最好的语言!不服来战!
linser
帖子: 243
注册时间: 2005-09-28 9:03

#13

帖子 linser » 2008-05-26 21:08

jqwzz 写了:
linser 写了:图形库可以用svgalib
有svgalib库的具体使用方法介绍吗?网上找了一下,讲得好简单,没有具体的细节性的使用介绍!
很感谢这位兄台!
http://www.svgalib.org/jay/beginners_gu ... guide.html
jqwzz
帖子: 23
注册时间: 2008-05-23 17:23

#14

帖子 jqwzz » 2008-05-31 23:22

linser 写了:
jqwzz 写了:
linser 写了:图形库可以用svgalib
有svgalib库的具体使用方法介绍吗?网上找了一下,讲得好简单,没有具体的细节性的使用介绍!
很感谢这位兄台!
http://www.svgalib.org/jay/beginners_gu ... guide.html
感谢这位兄台,svglib库太老了,没有办法安装,请问兄台你安装成功了吗?
linser
帖子: 243
注册时间: 2005-09-28 9:03

#15

帖子 linser » 2008-06-01 12:14

jqwzz 写了:
linser 写了:
jqwzz 写了:
linser 写了:图形库可以用svgalib
有svgalib库的具体使用方法介绍吗?网上找了一下,讲得好简单,没有具体的细节性的使用介绍!
很感谢这位兄台!
http://www.svgalib.org/jay/beginners_gu ... guide.html
感谢这位兄台,svglib库太老了,没有办法安装,请问兄台你安装成功了吗?
sudo apt-get install libsvga1-dev
回复