发新话题
打印

求助:Linux下C编译问题

求助:Linux下C编译问题

第一次在Linux下编写C程序,按教材上输入源程序,修改了几个明显的错误后,得到如下提示:- N8 W! F# P6 E/ [3 d
$ B* ?, N' {1 R2 \1 N2 f( K
/tmp/ccENXVTG.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
  N5 r% A1 o" \8 P. A  ccollect2: ld 返回 1# n' y* g5 v! r
" r0 \" P( c  q. c! |1 v
刚接触Linux编程,实在不知道到那里找答案,请高手帮忙!!0 V4 {* ^3 G( q9 `1 v- z) L
- ^# y; ?( J$ D. S2 B  f! g! u) @
编译命令: gcc -o FileType FileType.C4 A3 s' S: b, _1 o8 D

9 I4 y" c4 j9 L% n3 k运行环境:FC4默认的完全安装,普通用户身份。/ M4 j) d, Y2 n
; z0 E3 b5 z; A3 g6 y- G% F3 o
附源程序:
, T: C# T: O& z; V7 e- l% t
) g% z* q' F# c( X/* 判断文件类型 */- a  g( p: x% _4 l
#include <stdio.h>' b( Z5 @* M' s9 O8 t  N
#include <sys/types.h>
' w; N+ ^) Q1 F6 W+ z  J: N#include <sys/stat.h>
' t* X, c2 z2 Vint main(int argc,char *argv[])7 B) N+ t1 A/ j' {
{
+ r- \) a$ x5 I6 @: s0 t2 [        int I;
9 T5 n- F- y0 v) ~9 G2 L, Z        struct stat buf;
. O) H% _/ O7 I8 h% j  {. C        char *ptr;( G! z% |- ?+ n* W
        for (I=1;I<argc;I++)4 r8 |6 ]( {7 a4 ]3 G1 }4 Z+ {
        {
2 [  \, I! F: N3 C/ `5 A3 q- a1 a                printf("%s: ",argv[I]);. ~: ?! }2 C  ~
                if (lstat(argv[I],&buf)<0)$ A; @5 K+ Z' k( S; E
                {! S4 I# ~: f# d( A/ r$ a( T6 k
                        printf("error reading parameters. \n");
+ A: J0 ~: O. h, l# `3 c                        continue;
3 D; c, J. f, A% I5 J" |. {: Y                }# x  W  z! q& j7 N' n, V
               
' g  l/ d, G" p( {$ e' ?1 g                if (S_ISREG(buf.st_mode))                /* 正规文件 */
  a) r  U; M6 k( p                        ptr="regular";& }0 k( {& w+ I* s( Y3 T$ v# B
                else if (S_ISDIR(buf.st_mode))( U/ ^: {5 C2 o* n
                        ptr="directory";: D( f! S% T5 n: K' @
                else if (S_ISCHR(buf.st_mode))
$ y$ D( X. C" ?9 p/ |8 A% y7 Z                        ptr="character special";
; ~$ L% H9 J  G) u- j1 [2 ^                else if (S_ISBLK(buf.st_mode))# j: O* v: M  k3 d9 y% h" \$ u
                        ptr="block special";' b5 q! k. Z0 P' I
                else if (S_ISFIFO(buf.st_mode))) q* `9 v$ L$ U! z  }2 w6 b
                        ptr="fifo";
- W8 ~9 u' I; m2 `/ V6 [2 K        #ifdef S_ISLNK9 Q8 M7 O9 v+ G" u
                else if (S_ISLNK(buf.st_mode))
) ^4 {$ V5 h$ S. Y3 s2 J* b                        ptr="symbolic link";
, F2 A. E! k, q7 F2 k        #endif
: X6 ^; F2 a1 g# D$ ^        #ifdef S_ISSOCK5 x3 B' x" {( \9 _1 Z
                else if (S_ISSOCK(buf.st_mode))
& x% ^6 ]& S5 Q* K# \% ~                        ptr="socket";
- I3 A; n8 j! C; \+ O9 [5 }* u        #endif
4 h$ u% i" T) I1 E1 y9 p                else
2 I  w9 m$ u7 L- a                        ptr="*** unknown mode ***";" k$ m( u) X( _! T& s1 x" G1 }
                ! W9 a: y- f+ s* L
                printf("%s\n",ptr);0 h8 _0 r* r9 r8 [
        }
5 @" _- F' @4 m& ~7 `        return 0;
* ?3 c5 c5 `/ j}      

TOP

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

TOP

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

TOP

多谢!

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

TOP

发新话题