发新话题
打印

求助:Linux下C编译问题

求助: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
}

TOP

看程序应该没什么问题,不过貌似编译环境的问题,先弄个简单的helloworld程序编译一下呢?
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

[QUOTE=flag;569697]看程序应该没什么问题,不过貌似编译环境的问题,先弄个简单的helloworld程序编译一下呢?[/QUOTE]. I0 @/ l, H4 @. N
应该是扩展名的问题, .C 文件 gcc 会当作 C++ 处理, 改成 .c 应该就好了, 或者这样:
复制内容到剪贴板
代码:
gcc -o FileType [color=red]-x c[/color] FileType.C
'
◆ 发帖时请【突出主题】, 以便您的问题能够及时得到回复
◆ 发帖时请将您的【代码】或者【脚本】写在 [code] 和 [/code] 中间

TOP

多谢!

是扩展名的问题。该为小写c后一切正常了。

TOP

发新话题