2014-11-18 1 views
0

나는 다음과 같은 사용 반환collect2 : 오류 : 신분증 1 종료 상태

gcc -c -O4 ab_test.c 

이 근무하고 오류없이 ab_test.o을 생성하지만,

gcc -o ab_test ab_test.o -lgsl -lgslcblas -lm 

리드는 에러 :

**/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/crt1.o: In function `_start': 
/home/abuild/rpmbuild/BUILD/glibc-2.18/csu/../sysdeps/x86_64/start.S:118: undefined reference to `main' 
collect2: error: ld returned 1 exit status** 

코드는 ab_test.c입니다.

#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
#include <string.h> 
#include <gsl/gsl_rng.h> 
#include <gsl/gsl_randist.h> 


Main() 
{ 
    int i, temp_int; 
    char amode[30]; 
    char bmode[30]; 
    float wave_vector_y; 
for(i=0; i<41; i++) 
    { 
     //// set wave vector //// 
     wave_vector_y = i*0.005;  

     temp_int = 10000*wave_vector_y; 
     sprintf(amode,"a%04d.dat",temp_int); 
     sprintf(bmode,"b%04d.dat",temp_int); 
    } 
} 
+0

'메인'이 아닌'main'이어야합니다. –

+1

'Main()'->'int main (void)' –

+0

나는 그걸 알지 못했습니다. –

답변

0

"기본"서명은 int main(void) 또는 int main(int argc ,char *argv[])과 같아야하며 int Main()에 대한 이전 C 스타일 구문이 아닐 수 있습니다.

+0

_ "이고 이전 C 스타일 구문은 아님 ..."_?!? 뭐라구? –

+1

오래된 C 스타일 구문은'int Main()'을 허용하지 않는다. –

+0

결코 받아 들일 수있는 서명은 아니지만 리턴 타입을 지정하는 것은 오래된 C 스타일이 아니다. –

관련 문제