求助:Linux下C编译问题
第一次在Linux下编写C程序,按教材上输入源程序,修改了几个明显的错误后,得到如下提示:2 ]' J( x% ]- x
4 [6 i. Q5 r2 T" Q7 w4 M4 Q
/tmp/ccENXVTG.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'6 ?+ N$ p8 B" w& e. s
collect2: ld 返回 1
; ]5 h. d; t2 ?$ k, k4 p
; H; K7 T; f1 {! {. F9 I8 ?. U- W8 N刚接触Linux编程,实在不知道到那里找答案,请高手帮忙!! r1 e! o) \* D& i d
6 t* S5 b0 }& K0 \7 x- p! y编译命令: gcc -o FileType FileType.C
: a7 v( D- H# A* I. L& H0 W8 G% `% ^+ Q- y \' c6 R
运行环境:FC4默认的完全安装,普通用户身份。
+ k) U4 O6 z) {: x* O% X6 }% i1 o: H
7 e& U P+ J6 a2 H' d附源程序:- n* w1 Y1 O; B! Q! Q( ?0 L
$ _/ e$ I5 \6 R5 O9 k7 e. f/* 判断文件类型 */
% ]8 T& _) k8 T#include <stdio.h>; G; j" l* ^; w$ P2 o
#include <sys/types.h>: p! \4 d/ v; ~) P
#include <sys/stat.h>
; G X6 B2 C3 H2 Y) {2 X7 ?int main(int argc,char *argv[]); \, f8 P3 q& P+ `& R) e/ i1 ]
{
4 K7 R a% R3 d int I;( K0 ]9 b4 m' R! o* I: T0 `
struct stat buf;; h" ^, v3 T9 G( l
char *ptr;3 V( V+ o0 D5 [: O
for (I=1;I<argc;I++)1 J! |& D: ^. E2 E H4 ]1 H
{, u: D% y% E1 Y
printf("%s: ",argv[I]);4 b, ]3 F' G$ Z% ?
if (lstat(argv[I],&buf)<0)
/ F! G( P) [& J! } {
, o9 f) l: f U5 c/ D% y/ C printf("error reading parameters. \n");' q: r2 ^$ I4 G1 S
continue;; w9 L4 N) ]( q# s7 |
}; D/ O+ _/ |6 c; C
& x/ c' C% X3 \2 z" c& a if (S_ISREG(buf.st_mode)) /* 正规文件 */
4 m9 Q, l' x8 P' a! o ptr="regular";1 Q& @' [4 ?) `7 Z+ f$ _
else if (S_ISDIR(buf.st_mode)): w: {+ d1 X1 E
ptr="directory";
7 p3 h* u4 a l; M3 ]4 z else if (S_ISCHR(buf.st_mode))
3 S$ r- t Z1 U1 ? l ptr="character special";
& X# y) B( B0 q) o else if (S_ISBLK(buf.st_mode))6 G7 i7 C2 G4 U9 i
ptr="block special";
7 M( |1 i6 j" Z7 l. b5 ~ else if (S_ISFIFO(buf.st_mode))0 m6 {: K6 s# ^3 ^2 e0 T
ptr="fifo";0 }4 b" Q' l5 I4 J" A
#ifdef S_ISLNK
( B/ Z7 U! m4 A* j5 w/ } else if (S_ISLNK(buf.st_mode))# n. Z8 G/ a* [( D6 ~* k4 i& z7 k& W
ptr="symbolic link";
e j0 m6 R- z# U4 J #endif
# \- U0 m( h8 v1 p5 Z #ifdef S_ISSOCK& j b2 T* Z3 P6 @5 T
else if (S_ISSOCK(buf.st_mode))
% A7 C+ H3 w, Z- j8 e6 a+ p ptr="socket";7 b, H; |- [% L7 e
#endif j! I# D. H* ~* d; u
else
- R! I4 H& T2 Z9 q% t ptr="*** unknown mode ***";
; D% v$ D4 ? h, @. f8 U % b& V! m( V# N# C& W4 A9 A
printf("%s\n",ptr);
" W0 _1 @$ ~- ?- W4 w4 h }
/ D( l6 l; C* v% V: Z9 v9 P+ q2 W return 0;7 p4 T( j3 E- o5 L6 U
}