在TC下编写的小程序如何移植到Linux下?
小弟是一菜鸟,在TC下编写了个C程序,请各位大虾指点一下如何将其在linux下编译通过并运行?
4 ~" x0 ?1 \+ x8 g6 I2 D' \主要可能是库函数的问题:
# X `) x. l- ]' {8 n: r
; {: S6 U& m; G2 b! O. [) C程序GRAPDB.c:
6 @9 [$ A5 n# |% ]#include <math.h>
g# v) W! t6 D" `#include <stdio.h> / a. w% }4 N! u6 T# g
#include <stdlib.h>
2 I3 r7 C* y" N6 ^$ a/ q#include <time.h>
& L0 r* _* }4 }6 U0 P#include <graphics.h> * j- ` {" l# m, K" P
main() ! S6 T- p( O3 ]* L3 N
{ int gdriver,gmode,posi;
$ w+ t1 Y" g5 I2 T H! _8 c5 f) U9 X- [double Kdb=-4294967295;
7 e& c A" r- N/ Q% X3 tdouble X,Y,G1,G2,C=1,a,R,K,S,A; , L2 Q3 x+ F( X p5 P
int N=600,i;
0 K- V, s: ^( i0 J* m3 IK=pow(10.0,(Kdb/10)); - s' \ ?9 M. J5 {
a=1/(2*(K+1));
% H* X7 _- L+ i! P& Msrand((int)time(0)); 1 u/ ~5 @; ?( t
gdriver=DETECT; . C! K( \' M8 t! b9 Y
initgraph(&gdriver,&gmode,"c:\\turboc2\\bgi");
9 B: H/ G% S2 h* x( Y' U3 o msetbkcolor(BLUE);
' c, Q, @" A+ N; v! Qcleardevice(); 2 d! @4 h# K8 k7 I6 h* E
setcolor(10);
! p. H+ x, f; D& Ufor(i=0;i<N;i++)
* p' q4 N5 f3 P% R+ R1 k* D) z{do
: O+ x0 H! u: N5 o7 I- B' N6 V{X=1-2.0*rand()/32767; , d! t, ~, h3 x. r9 C5 m9 p3 u9 E
Y=1-2.0*rand()/32767;
+ }6 k. K2 U6 \( [, LS=X*X+Y*Y;
1 C, ~, r G+ ~} / d, \7 r4 c/ Q
while(S>=1);
2 Y; j# g$ d. d c4 w0 @) [G1=X*sqrt(-2*C*C*log(S)/S);
7 T" C0 Z- X: p* {G2=Y*sqrt(-2*C*C*log(S)/S);
3 r2 @& a- Q! k7 P2 R( jR=sqrt(a*((G1+sqrt(2*K))*(G1+sqrt(2*K))+G2*G2));
: ^& E! L& I3 m: k) ]A=20*log10(R); - j, J4 Y s0 S5 i
posi=240-8*A;
6 z2 \ q3 D% S' cline(i,240,i,posi); " P0 p9 @" N$ X& M
} . i! e# B, ?2 }. R0 N' q
getchar(); 6 }% u) {0 J. q/ u% m
closegraph();
! ^; w6 `' q3 |* S" t& K} 7 {4 X9 c; W5 p' o& \ j
1 H+ E! [& G: S) f在ubuntu下运行 gcc -o GRAPDB GRAPDB.c,错误如下: 8 X# Z2 i& `$ e. |8 ]
GRAPDB.c:5:22: 错误: graphics.h:没有该文件或目录 f; `3 c* s7 T8 u
GRAPDB.c: In function ‘int main()’:
! V0 e4 i' R) BGRAPDB.c:14: 错误: ‘DETECT’在此作用域中尚未声明
5 r$ m; u- l! m3 f* eGRAPDB.c:15: 错误: ‘initgraph’在此作用域中尚未声明
- `+ p: F0 l7 Y0 H7 @( l. tGRAPDB.c:16: 错误: ‘BLUE’在此作用域中尚未声明
7 V9 W& E7 [' N+ LGRAPDB.c:16: 错误: ‘setbkcolor’在此作用域中尚未声明 ; u4 n+ ^3 D- `8 p
GRAPDB.c:17: 错误: ‘cleardevice’在此作用域中尚未声明
: D5 O$ }; Z2 I7 q5 g5 l2 NGRAPDB.c:18: 错误: ‘setcolor’在此作用域中尚未声明
' f! {8 g$ |3 m7 zGRAPDB.c:31: 错误: ‘line’在此作用域中尚未声明 / v K) x! W3 L- p: u% y
GRAPDB.c:34: 错误: ‘closegraph’在此作用域中尚未声明
7 J. T8 d. v7 y s; E" ~" {. Q! E0 ~! j- j: @. g/ w% G3 s1 r ~4 R
程序中有#include <graphics.h> Linux下好像没有这个库,请问该如何解决? 0 K( L3 H3 O% X' @# n, @9 f
需要换函数库吗?如何修改代码?
- y* P4 S( M7 Z' H' h6 Y跪谢各位大侠!!